适配器模式(Adapter Pattern)是一种结构型设计模式,它的主要目的是将一个接口转换成客户希望的另一个接口。它使原本由于接口不兼容而不能一起工作的类能够协同工作。
适配器模式的核心原理是“封装”,它包含以下角色:
适配器通常有以下两种实现方式:
// 目标接口
public interface Target {
void request();
}
// 被适配者类
public class Adaptee {
public void specificRequest() {
System.out.println("执行特定的操作...");
}
}
// 适配器类
public class Adapter implements Target {
private Adaptee adaptee;
public Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void request() {
adaptee.specificRequest();
}
}
// 使用示例
public class Client {
public static void main(String[] args) {
// 创建被适配者对象
Adaptee oldApi = new Adaptee();
// 创建适配器,并传入被适配者对象
Target adapter = new Adapter(oldApi);
// 客户端代码只需要与目标接口交互
adapter.request(); // 输出 "执行特定的操作..."
}
}
想象你有一个老式的Walkman播放器,但是你想用它来连接到你的新式蓝牙音箱上听音乐。适配器就像是一个转换插头,它的一端可以插入Walkman的耳机插孔,另一端则符合蓝牙音箱的充电口标准。这样,尽管两者接口不同,但通过适配器就能让他们互相配合工作了。