适配器模式是一种结构型设计模式,允许我们创建一个能够协调两个不兼容接口之间的适配器对象。
可以用于接口的扩展与维护。
系统需要使用现有的类,而这些类的接口不符合系统的需求。
想要创建一个可以复用的类,该类可以与一些不兼容的类一起工作。
需要一个统一的输出接口,而输入端的类型不可预测。
// 目标接口
interface Target {
void request();
}
// 需要适配的类
class Adaptee {
public void specificRequest() {
System.out.println("Adaptee's specificRequest called");
}
}
// 类适配器
class ClassAdapter extends Adaptee implements Target {
@Override
public void request() {
specificRequest(); // 调用Adaptee类的方法
}
}
// 客户端代码
public class Client {
public static void main(String[] args) {
Target target = new ClassAdapter();
target.request();
}
}
对象适配器示例:
// 对象适配器
class ObjectAdapter implements Target {
private Adaptee adaptee;
public ObjectAdapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void request() {
adaptee.specificRequest(); // 委托给Adaptee对象
}
}
// 客户端代码
public class Client {
public static void main(String[] args) {
Adaptee adaptee = new Adaptee();
Target target = new ObjectAdapter(adaptee);
target.request();
}
}