Skip to content

适配器模式(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)

场景二:可能两个接口返回的数据不一样,则需要数据适配器(修改返回数据的结构)。(代码略)

Released under the MIT License.