适配器模式(Adapter)
适配器模式的作用是解决两个软件实体间的不兼容的问题。
注意:如果现有接口就已经能够正常工作,那就永远不会用上适配器。
适配器模式是没有人在设计之初就使用它的。
使用场景:
- 解决两个已有接口之间的不匹配问题。
比如生活中的例子,去香港购买港版的 iphone 或 macbook,赠送的充钱器都是港版电器的插头,在大陆根本没法用,最简单的方法就是购买转换头(适配器)。
案例
场景一:百度地图和高德地图提供的渲染地图的方法是不一样的
javascript
const BMap = {
display: function () {
console.log('开始渲染百度地图')
}
}
const AMap = {
show: function () {
console.log('开始渲染高德地图')
}
}
const renderMap = function (map) {
if(map.show instanceof Function) {
map.show()
}
}
// 百度地图的适配器
const BMapAdapter = {
show: function () {
return BMap.display()
}
}
renderMap(BMapAdapter)
renderMap(AMap)
场景二:可能两个接口返回的数据不一样,则需要数据适配器(修改返回数据的结构)。(代码略)