—《Head First设计模式(中文版)》
适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。
对象适配器:Client(客户)只能看到目标接口,由Adapter(适配器)实现目标接口,Adapter(适配器)与Adaptee(被适配者)组合,所有的请求都委托给被适配者。
类适配器:类适配器不是使用组合来适配被适配者,而是继承被适配者和目标类(Java中普通类无法实现多继承的)
类适配器和对象适配器唯一的差别就是类适配器同时继承了Target和Adaptee,而对象适配器利用组合的方式将请求传送给被适配者
package cn.shentianlan.studytest.designmode.adapter;
/**
* @author 渊蓝
* @version 1.0
* @description 目标接口
* @date 2021/11/1 20:51
*/
public interface Target {
void request();
}
class Adapter implements Target {
private Adaptee adaptee;
public Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void request() {
System.out.println("适配器请求");
//调用被适配器的方法
adaptee.specificRequest();
}
}
class Adaptee{
public void specificRequest(){
System.out.println("被适配器的请求");
}
}
class Client{
public static void main(String[] args) {
Target target = new Adapter(new Adaptee());
target.request();
}
}