工作生活

设计模式(九)适配器模式

2019-07-02  本文已影响0人  天色将变
定义

适配器模式将一个类的接口,转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。

解决的问题

现有一个系统A,已经上线,对外提供A1A2A3三个接口,一个新的系统C有C1C2C3三个接口,客户依然想使用A的接口方式来使用系统C的接口,但是C与A接口是不匹配的,客户无法直接使用C的接口,这时该怎么办?写一个新类B,将系统C的接口转换成客户所期望的接口。
系统C是被适配者,B是适配器,系统A是目标。

类图
image.png
描述
伪代码
public class Client{
  A a;
  public void setA(A a){
    this.a = a;
  }
  public void move(){
    a.A1();
  }
}
public interface A{
  public void A1();
}
public class ClassC{
  public void C1(){}
  public void C2(){}
  public void C3(){}
}
public class AdapterB{
  ClassC c;
  public AdapterB(ClassC c){
    this.c = c;
  }
  public void A1(){
    c.C1();
    c.C2();
    c.C3();
  }
}

示例:

Client client = new Client();
client.setA(new AdapterB(new ClassC()));
client.move();
一句话总结

客户所需要的功能,通过适配器B,间接调用C的接口实现,但是客户仍然按照A的方式调用。

上一篇 下一篇

猜你喜欢

热点阅读