:通常是为了解决两个不兼容接口之间的兼容问题。
如果你有一个已经工作的两相插座(即有两个插口的设备),但是你买了一个需要三相插座(即有三个插口的设备)的电器,现在用户想使用新的三相插座来使用三相的洗衣机和二相插座的电视机,
// 第一步:定义目标接口
// 定义三相设备的接口
class ThreePhaseDevice {usePower() {console.log("使用三相电源");}
}// 第二步:适配者类
// 定义两相插座的接口
class TwoPhaseSocket {plugIn() {console.log("两相插座已连接");}
}// 第三步:适配器类
// 创建适配器类,使三相设备能在两相插座上工作
class ThreePhaseToTwoPhaseAdapter extends TwoPhaseSocket {constructor(device) {super();this.device = device; // 持有对三相设备的引用}plugIn() {super.plugIn(); // 调用两相插座的plugIn方法this.device.usePower(); // 调用三相设备的usePower方法}
}// 第四步:客户端代码
// 创建三相设备实例和适配器实例,然后使用适配器在两相插座上工作
const device = new ThreePhaseDevice();
const adapter = new ThreePhaseToTwoPhaseAdapter(device);
adapter.plugIn(); // 输出: 两相插座已连接,使用三相电源
单例模式
简述在现实生活中,居民身份证号码具有唯一性,居民可以申请身份证号码或补办身份证号码(还是使用原来的身份证号码,不会产生新的号码)。我们可以使用()来模拟实现居民身份证号码办理 ?
软件设计模式之单例模式-----身份证号码---打印池_身份证号单例模式-CSDN博客
观察者模式
对象间存在一对多关系,当一个对象被修改时,则会自动通知它的依赖对象,采用以下哪种设计模式最好 ?