适配器模式-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是单继承的因此继承实现适配器只能单一的为某个类实现适配,而聚合的方式可以是通过设置不同的属性实现不同对不同类对象的适配。

原文地址:https://www.cnblogs.com/LionheartCGJ/p/6859066.html