楔子
学习笔记
适配器模式(Adapter Pattern)是一个种结构型模式,基于该模式设计的类能够在两个或者多个不兼容的类之间起到沟通桥梁的作用。
通常我们说的适配器模式是指类适配器或者对象适配器。
类适配器
图中,Target接口是Client想调用的标准接口,而Adaptee是提供服务但不符和标准接口的目标类。Adapter便是为了能顺利调用Adaptee类,从而是Client能够与Adaptee适配。
public class Adapter extends Adaptee implements Target {
@Override
public void sayHi() {
super.sayHello();
}
}
对象适配器
对象适配器Adaptee不再继承目标类,而是直接持有一个目标类的对象。如下图
如下是使用对象适配器的示例。
//对象适配器类
public class Adapter2 implements Target {
//目标类的对象
private Adaptee adaptee;
//初始化适配器时可以指定目标类对象
public Adapter2(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void sayHi() {
adaptee.sayHello();
}
}
这样,Adapter可以直接将Client要求操作作为委托给目标类对象处理,也实现了Client和Adaptee之间的适配。而且这种适配器更灵活一些。因为要适配的目标对象是作为初始化参数传给Adapter的。