结构型模式—适配器模式

定义:

将一个类(Adaptee)的接口转换成客户(Client)希望的另外一个接口(Target)。

  • 目标接口(Target):客户所期待的接口。目标能够是详细的或抽象的类,也能够是接口。
  • 须要适配的类(Adaptee):须要适配的类或适配者类。
  • 适配器(Adapter):使得一个东西适合还有一个东西的东西。百度中定义为:接口转换器。通过包装一个须要适配的对象。把源接口转换成目标接口。

为什么要适配:须要的东西已做好,可是不能用。短时间又不能改造。想办法适配它。

作用:

使得原本因为接口不兼容而不能一起工作的那些类能够一起工作。
(姚明说汉语,其它队员和教练说英语,他们不能沟通交流。团队就不能非常好地合作。有了翻译。团队协作成为可能。)

应用:

复用一些现存的类,可是接口又与复用环境要求不一致。

分类:

类适配器模式/对象适配器模式

实现方式:

class Adapter:Target 
    {
        //内部包装一个Adaptee对象,表面调用Target的方法Request,实际调用Adaptee的方法SpecificRequest。
        private Adaptee adaptee = new Adaptee();
        public override void Request()
        {
            adaptee .SpecificRequest ();
        }
    }

  class Program
    {
        static void Main(string[] args)
        {
            //外界看到的是统一的接口,Request()
            Target target = new Adapter();
            target.Request();
            Target target2=new Target();
            target2.Request();
            
        }
    }

使用条件:

两个类都不太easy改动的时候。
某系统使用第三方开发组件,这个组件的接口与系统的接口不同样。


长处:

  • 调用统一接口
  • 复用

类图:



原文地址:https://www.cnblogs.com/clnchanpin/p/6951567.html