跳到主要内容

适配器模式示例

适配器模式的本质是连接两个接口或类,使得一个对象能够使用另一个对象的方法,即使这两个对象的接口不兼容。笔者将通过一个 Java 示例来说明如何实现适配器模式,从而让原本由于接口不兼容而无法一起工作的类能够协同工作。

原则

对修改代码进行封闭,对扩展代码进行开放

定义目标接口

首先,笔者定义了一个目标接口 Target,该接口声明了一个 request 方法,作为客户端期望调用的方法。

public interface Target {
void request();
}

创建需要适配的类

接下来,笔者创建了一个不兼容的类 Adaptee,该类包含一个 specificRequest 方法,表示特定的请求。

public class Adaptee {
public void specificRequest() {
System.out.println("特定的请求正在被调用!");
}
}

实现适配器类

笔者进一步创建了一个实现目标接口的适配器类 Adapter。该适配器类持有一个 Adaptee 的实例,通过构造方法将需要适配的对象传入。在 request 方法中,适配器调用了 AdapteespecificRequest 方法,实现了接口的转换。

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