适配器模式示例
适配器模式的本质是连接两个接口或类,使得一个对象能够使用另一个对象的方法,即使这两个对象的接口不兼容。笔者将通过一个 Java 示例来说明如何实现适配器模式,从而让原本由于接口不兼容而无法一起工作的类能够协同工作。
原则
对修改代码进行封闭,对扩展代码进行开放
定义目标接口
首先,笔者定义了一个目标接口 Target
,该接口声明了一个 request
方法,作为客户端期望调用的方法。
public interface Target {
void request();
}
创建需要适配的类
接下来,笔者创建了一个不兼容的类 Adaptee
,该类包含一个 specificRequest
方法,表示特定的请求。
public class Adaptee {
public void specificRequest() {
System.out.println("特定的请求正在被调用!");
}
}
实现适配器类
笔者进一步创建了一个实现目标接口的适配器类 Adapter
。该适配器类持有一个 Adaptee
的实例,通过构造方法将需要适配的对象传入。在 request
方法中,适配器调用了 Adaptee
的 specificRequest
方法,实现了接口的转换。
public class Adapter implements Target {
private Adaptee adaptee;
public Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void request() {
adaptee.specificRequest();
}
}
使用适配器对象
最后,笔者在 Main
类中演示了如何使用适配器对象。通过适配器对象调用 request
方法,客户端能够使用 Adaptee
对象的方法,而无需直接依赖其不兼容的接口。
public class Main {
public static void main(String[] args) {
Adaptee adaptee = new Adaptee();
Target target = new Adapter(adaptee);
target.request();
}
}
代码仓库
完整代码可访问以下链接:Java-Learning/src/com/DesignPattern/adapter at main · sumingcheng/Java-Learning