前言
适配器模式属于结构型模式,这个类型的设计模式总结出了 类、对象组合后的经典结构,将类、对象的结构和使用解耦了,花式的去借用对象。
适配器模式
使用场景:适配已有的功能,处理不兼容的功能,将不适合的功能再进行一层封装,将不适配的数据做完美转换。
理解:类、对象的结构和使用解耦,适配器模式和代理模式一样都支持继承、组合的方式。当目标的功能很少时,继承和组合的方式都行。当目标的功能非常多,只需要转换一小部分功能,同时要求保留目标原有大部分的功能,最好使用继承的方式。当目标的功能非常多,只需要转换一小部分功能,并不要求保留目标原有大部分功能,最好使用组合的方式。适配器模式常用于将不好用的功能或数据转换成合适易用的功能或数据。
namespace struct_mode_04 {
// 接口
interface IAlternator {
sendElectricity(): void
}
class FiveThousandVTower {
sendElectricity() {
console.log('放电:放射~~~~5000V')
}
}
class TowerAdapter implements IAlternator {
private fiveThousandVTower = new FiveThousandVTower()
sendElectricity(): void {
this.fiveThousandVTower.sendElectricity()
console.log('将5000v电转换。。。')
console.log('转换成为了 220V 的家用电')
}
}
class TowerAdapter2 extends FiveThousandVTower {
sendElectricity() {
super.sendElectricity()
console.log('将5000v电转换。。。')
console.log('转换成为了 36V 的小功率电')
}
}
// 使用一:对象适配器
const towerAdapter = new TowerAdapter()
towerAdapter.sendElectricity()
// 使用二:类适配器
const towerAdapter2 = new TowerAdapter2()
towerAdapter2.sendElectricity()
}