其他分享
首页 > 其他分享> > 前端设计模式(四):适配器模式

前端设计模式(四):适配器模式

作者:互联网

适配器模式:将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个接口(方法或属性),使得原本由于接口不兼容而不能一起工作的那些类(对象)可以正常协作。简单理解就是为兼容而生的 “转换器”

​ 适配器模式是一对相对简单的模式,有一些模式跟适配器模式的结构非常相似,比如装饰者模式、代理模式和外观模式。这几种模式都属于“包装模式”,都是由一个对象来包装另一个对象。区别它们的关键仍然是模式的意图:

适配器模式的例子:

const googleMap = {
  show: () => {
    console.log('谷歌地图展示方法')
  }
}

const gaodeMap = {
  show: () => {
    console.log('高德地图展示方法')
  }
}

// 我们写了一个通用的加载Map的方法
const renderMap = (map) => {
  if(map.show && map.show instanceof Function) {
    map.show();
  }
}

// OK,加载高德和谷歌都没问题
renderMap(googleMap);
renderMap(gaodeMap);

// 但是假如来了个百度地图,里面提供的是display方法
const baiduMap = {
  display: () => {
    console.log('百度地图展示方法')
  }
}

// 由于我们无法知道第三方SDK给我们提供什么方法名,所以我们应该套一层方法去转换,这就是适配器

const baiduMapAdapter = {
  show: () => {
    return baiduMap.display()
  }
}

// 正常调用
renderMap(baiduMapAdapter)

标签:const,show,适配器,renderMap,接口,模式,设计模式,前端
来源: https://www.cnblogs.com/suanyunyan/p/16415663.html