JavaScript设计模式(十四):适配器模式

192 阅读1分钟

介绍

适配器模式:适配器模式的作用是将两个软件实体间的接口不兼容的问题。使用适配器模式之后,原本由于接口不兼容而不能工作的两个软件实体可以一起工作。

这个像我们使用的各种转接头。

例子

const googleMap = {
  show: function () {
    console.log('开始渲染谷歌地图')
  }
}

const renderMap = function (map) {
  if (map.show instanceof Function) {
    map.show()
  }
}

renderMap(googleMap)

假如这个时候,百度地图的渲染接口是下面这样的:

const baiduMap = {
  display: function() {
    console.log('开始渲染百度地图')
  }
}

百度地图的渲染接口是display ,而不是show。这个时候,我们就可以编写一个适配器来解决问题。

const googleMap = {
  show: function () {
    console.log('开始渲染谷歌地图')
  }
}

const baiduMap = {
  display: function () {
    console.log('开始渲染百度地图')
  }
}

const baiduAdapter = {
  show: function () {
    return baiduMap.display()
  }
}

const renderMap = function (map) {
  if (map.show instanceof Function) {
    map.show()
  }
}

renderMap(googleMap)
renderMap(baiduAdapter)

小结

适配器模式主要是用来解决已有的对象接口之间的不匹配问题,它不需要改变现有的接口,就能使它们协同工作。