适配器模式示例
适配器模式的本质是连接两个接口或类,使得一个对象能够使用另一个对象的方法,即使这两个对象的接口不兼容。笔者将通过一个 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