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

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

目标抽象角色(Target)

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

适配器(Adapter)

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

适配者(Adaptee)已经存在的一个接口不符合需求的类,需要被适配

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

客户端(Client)

协同对象符合Adapater适配器
 
插线板案例

两种类型的适配器模式

  • 类适配器(采用继承的方法)
  • 对象适配器(采用对象组合的方式)
 
 
Target
interface Target
{
  voidMyOutPut();
} 

 

 
Adaptee
interface Adaptee
{
  voidOutPut();
} 

 

 
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  【唐】三三  阅读(298)  评论(0)    收藏  举报