适配器模式定义
将一个类(Adaptee)的接口,转换成客户期望的另外一个接口(Target)。适配器(Adapter)让原本接口不兼容的类可以合作无间。
适配器模式结构图
适配器模式角色介绍
抽象目标角色:Target,定义目标接口,也就是客户端所需要的接口,客户端面向抽象目标角色编程。
适配器角色:Adapter,实现抽象目标接口,关联适配者角色。将客户端发送的请求委托给适配者角色处理。
适配者角色:Adaptee,被适配的对象,实际处理客户请求的类。
适配器模式结构代码
抽象目标类:
public interface Target {
//定义客户端需要的接口
void request();
}
适配器类:
public class Adapter implements Target {
private Adaptee adaptee;
public Adapter() {
this.adaptee = new Adaptee();
}
//将客户端请求委托给适配者对象
public void request() {
adaptee.specificRequest();
}
}
适配者类:
public class Adaptee {
public void specificRequest(){
System.out.println("我是被适配的对象,也就是实际处理客户端请求的对象");
}
}
客户端:
public class Client {
public static void main(String[] args) {
Target target = new Adapter();
target.request();
}
}
适配器模式运行机制
客户端发送请求给目标接口,适配器实现目标接口,但适配器并未做实际逻辑处理,而是直接将请求转发给被适配的对象适配者,适配者负责处理请求并将结果返回给适配器,适配器再将结果返回给客户端。
适配器模式解决的核心问题
将一个类(Adaptee)的接口,转换成客户期望的另外一个接口(Target)。实现接口兼容。