设计模式 -(7)适配器模式(结构型)

将一个类的接口转换成客户希望的另外一个接口。Adpater模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作

目标抽象角色(Target)

定义客户要用的特定领域接口

适配器(Adapter)

调用另一个接口,作为一个转换器

适配器(Adaptee)

定义一个接口,Adapater需要介入

客户端(Client)

协同对象符合Adapater适配器

插线板案例

两种类型的适配器模式

  • 类适配器(采用继承的方法)
  • 对象适配器(采用对象组合的方式)




Target
    interface Target
    {
        void MyOutPut();
    } 

Adaptee
    interface Adaptee
    {
        void OutPut();
    } 

ConcreteAdaptee1
    public class ConcreteAdaptee1 : Adaptee
    {
        public void OutPut()
        {
            Console.WriteLine("From ConcreteAdaptee");
        }
    } 
ConcreteAdaptee2
    class ConcreteAdaptee2 : Adaptee
    {
        public void OutPut()
        {
            Console.WriteLine("From ConcreteAdaptee2");
        }
    } 
Adapter
    class Adapter : Target
    {
        private Adaptee _adaptee; //必须要维护一个Adaptee类型的成员变量

        public Adapter(Adaptee adaptee)
        {
            this._adaptee = adaptee;
        }

        public void MyOutPut()
        {
            this._adaptee.OutPut();
        }
    } 
Client

    class Client
    {
        static void Main(string[] args)
        {
            Target target = new Adapter(new ConcreteAdaptee1());
            target.MyOutPut();

            target = new Adapter(new ConcreteAdaptee2());
            target.MyOutPut();

            Console.Read();
        }
    } 


分析





posted @ 2016-09-23 15:50  【唐】三三  阅读(280)  评论(0编辑  收藏  举报