es6 语法学习 - 适配器模式
一、基本概念
适配器设计模式(Adapter Pattern)是一种结构型设计模式,它允许将一个接口转换成客户端所期望的另一个接口。适配器充当了两个不兼容接口之间的桥梁,使得它们能够协同工作。
二、 优点
- 接口适配:可以使不同的接口能够一起使用,促进了接口的兼容性。
- 提高复用性:通过适配器,可以增强已有类的功能或兼容性,而无需修改原有类。
- 降低耦合性:客户端代码不需要了解适配的类,只需利用适配器提供的接口。
三、缺点
- 增加复杂性:引入适配器可能会使系统结构变得复杂,尤其是当适配器多时。
- 性能开销:调用适配器可能会增加一定的性能开销。
四、使用场景
- 当你需要使用一个已经存在的类,而它的接口不符合你的需求时。
- 当你需要创建一个可与现有接口兼容的新类时。
- 当你想要使用多个难以兼容的类,需要用适配器来协调它们的操作时。
五、示例代码
// 目标接口
class Target {
request() {
throw new Error('This method should be overridden!');
}
}
// 适配者
class Adaptee {
specificRequest() {
return 'Voltage from Adaptee';
}
}
// 适配器
class Adapter extends Target {
constructor(adaptee) {
super();
this.adaptee = adaptee;
}
request() {
// 将适配者的特定请求转换为目标请求
const result = this.adaptee.specificRequest();
return `Adapted: ${result}`;
}
}
// 使用示例
const adaptee = new Adaptee(); // 适配者
const adapter = new Adapter(adaptee); // 适配器
// 客户端代码只依赖于目标接口
console.log(adapter.request()); // 输出: Adapted: Voltage from Adaptee