将一个类的接口转换成我们所需要的一个接口。适配器模式可以使接口不兼容的类在一起工作。
例如:
class TencentMap {
constructor() { }
showMap () {
console.log('展示腾讯地图')
}
}
class BaiduMap {
constructor() { }
displayMap () {
console.log('展示百度地图')
}
}
// 我们想要一个方法去渲染地图但是不确定使用百度还是腾讯,
// 而且我们还需要让展示的方法名都是displayMap,
// 这个时候就需要适配器让腾讯地图的showMap适配成displayMap
// 适配器
class TencentAdapater extends TencentMap {
constructor() {
super()
}
displayMap () {
this.showMap()
}
}
function renderMap (map) {
map.displayMap()
}
renderMap(new TencentAdapater())
renderMap(new BaiduMap())