桥接模式

代码
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();
    }
}


posted @ 2010-04-10 15:21  科睿思博  阅读(145)  评论(0编辑  收藏  举报