适配器模式是一对相对简单的模式,充当两个不兼容接口之间的桥梁,属于结构型设计模式,主要用来解决多个已有接口之间不匹配的问题,它不考虑这些接口是怎样实现的,也不考虑它们将来可能会如何演化。适配器模式不需要改变已有的接口,就能够使它们协同作用。
“如果现有的接口已经能够正常工作,那我们就永远不会用上适配器模式。适配器模式是一种‘亡羊补牢’的模式,没有人会在程序的设计之初就使用它。因为没有人可以完全预料到未来的事情,也许现在好好工作的接口,未来的某天却不再适用于新系统,那么我们可以用适配器模式把旧接口包装成一个新的接口,使它继续保持生命力。” --摘自《JavaScript设计模式与开发实践》
const gisMap = {
loadLayer() {
console.log('loadLayer');
},
};
const cityMap = {
renderLayer() {
console.log('renderLayer');
},
};
const cityMapAdapter = {
loadLayer() {
return cityMap.renderLayer();
},
};
const renderMap = (map) => {
map.loadLayer();
};
renderMap(gisMap);
renderMap(cityMapAdapter);