23种设计模式-适配器模式

1、概念:

            定义:适配器模式,是指将一个类的接口转换成客户期望的另外一个接口,是原本的接口不兼容的类,可以一起工作。它是结构型模式的一种。

创建型模式:   结构型模式:   行为模式:
  单例模式   代理模式   模板方法模式
  原型模式   适配器模式   策略模式
  工厂方法模式   桥接模式   命令模式
  抽象工厂模式   装饰模式   责任链模式
  建造者模式   外观模式   状态模式
      享元模式   观察者模式
      组合模式   中介者模式
          迭代器模式
          访问者模式
          备忘录模式
          解释器模式

2、样例:

 

package com.jason.adapter;

public class English {
     public void sayEnglish()
     {
         System.out.println("sayEnglish-------");
     }
}

package com.jason.adapter;

//使用继承
public class EnglishAdapter extends English{
    
    public void transferTOEnglish()
    {
         System.out.println("使用适配器");
         this.sayEnglish();
            //System.out.println("sayEnglish-------");
    } 

}

package com.jason.adapter;

//组合方式
public class EnglishAdapter2 {
      private English english;
      public EnglishAdapter2(English english)
      {
          this.english=english;
      }
      public void transferTOEnglish()
      {
          english.sayEnglish();
      }

}

3、适用场景:

日常在快速迭代实现业务功能时,这些功能可能已有一些不太成熟的主件,如果重新开发,需要花费大量的时间,影响工期。所以很大情况下会暂时先用这些不太成熟的主件,后期再考虑替换的策略。后期再替换主件的过程中,可能需要对引用外部主件的代码做大量的修改,如何在避免大范围的修改?

这就是适配器的模式的作用,定义一个新的接口(对要实现的功能加以抽象),另外增加一个实现该接口的适配器,通过该适配器透明的调用外部组件。这样替换外部主件,只需要修改适配器就可以了,业务层的代码不用修改。

4、优缺点:

    1)优点:

          能提高类的透明性和复用,现有的类复用,但是不需要改变;

          目标类与适配类解耦,提高程序的扩展性;

          复合开闭原则;

     2)缺点:

          增加代码复杂性,代码可读性低。

   

 

你可能感兴趣的:(GOF23种设计模式)