适配器模式-Adapter

Posted LionheartCGJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了适配器模式-Adapter相关的知识,希望对你有一定的参考价值。

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

适配器的作用:

  透明:通过适配器,客户端可以调用同一接口,因而对客户来说是透明的。

  重用:复用了现有的类,解决了现存类和复用环境要求不一致的问题。

  低耦合:将目标类和需要适配的类解耦,通过引入一个适配器重用现有的类,而无须修改原有代码(遵循开闭原则)

  

使用聚合方式实现对象适配器:把需要适配的对象作为一个属性聚合到适配器类中,以修改目标接口包装被适配者

  public class TwoPhaseToThreePhaseAdapter implements ThreePhaseSocket {

    private GBTwoPhaseSocket twoPhaseSocket;

    public TwoPhaseToThreePhaseAdapter(GBTwoPhaseSocket twoPhaseSocket) {
      super();
      this.twoPhaseSocket = twoPhaseSocket;
    }

    @Override
    public void powerWithThree() {
      twoPhaseSocket.powerWithTwo();
      System.out.println("将二相电流转换为三相电流...");
    }
  }

使用继承的方式实现适配器:通过继承需要被适配的类,实现对目标接口的匹配,单一的为某个类实现适配

  public class TwoPhaseToThreePhaseAdapterByExtends extends GBTwoPhaseSocket implements ThreePhaseSocket {

    // 转换过程
    @Override
    public void powerWithThree() {
      powerWithTwo();
      System.out.println("将二相电流转换为三相电流...");
    }

  }

两种方式的区别:

  因为java是单继承的因此继承实现适配器只能单一的为某个类实现适配,而聚合的方式可以是通过设置不同的属性实现不同对不同类对象的适配。

以上是关于适配器模式-Adapter的主要内容,如果未能解决你的问题,请参考以下文章

设计模式:适配器模式(Adapter)

Adapter适配器模式

图解设计模式之Adapter模式

七适配器(Adapter)模式--结构模式(Structural Pattern)

适配器模式(Adapter模式)

适配器模式(Adapter Pattern)