桥接模式

代码
using  System;
using  System.Collections.Generic;

public   interface  ILog
{
    
void  Log( string  str);
}

public   class  TxtLog:ILog
{
    
public   void  Log( string  str)
    {
        Console.WriteLine(
" Text Record: " + str);
    }
}

public   class  SQLServerLog:ILog
{
    
public   void  Log( string  str)
    {
        Console.WriteLine(
" SQLServerLog Record: " + str);
    }
}

public   class  OracleLog:ILog
{
    
public   void  Log( string  str)
    {
        Console.WriteLine(
" OracleLog Record: " + str);
    }
}

public   abstract   class  Message
{
    
public  ILog miketest;
    
public   abstract   void  Log( string  str);
}

public   class  NoEncrytMessage:Message
{
    
public  NoEncrytMessage(ILog log)
    {
        miketest
= log;
    }
    
    
public   override   void  Log( string  str)
    {
        Console.WriteLine(
" 不用加密!! " );
        miketest.Log(str);
    }
}

public   class  EncrytMessage:Message
{
    
public  EncrytMessage(ILog log)
    {
        miketest
= log;
    }
    
    
public   override   void  Log( string  str)
    {
        Console.WriteLine(
" 加密加密字符 " );
        miketest.Log(str);
    }
}

public   class  MyClass
{
    
public   static   void  Main()
    {
        Message message
= new  EncrytMessage( new  OracleLog());
        message.Log(
" MIke " );
        Console.WriteLine(
" ********************** " );
        Message mymessage
= new  NoEncrytMessage( new  SQLServerLog());
        mymessage.Log(
" Janus " );
        Console.WriteLine(
" *********************** " );
        mymessage
= new  EncrytMessage( new  SQLServerLog());
        mymessage.Log(
" Janus " );
        Console.ReadLine();
    }
}


你可能感兴趣的:(桥接模式)