适配器模式
开发中常常遇到一些接口不适配的问题,这类问题适合通过适配器模式进行解决,其思想就是,在原接口外面嵌套一层符合需要的接口,然后内部实际调用的是老接口
比如我想写一个显示地图的接口,内部调用的是谷歌的地图
function showMap(map) {
map.show(); //假设谷歌地图使用的是 show方法显示
}
后期又要求 还有支持百度地图, 百度地图提供的接口是 map.display(),怎么办? 要更改之前的showMap方法么? 封闭-开发原则肯定不要这样做, 那么我们就使用适配器模式,
var baiduMapAdapter = {
show: function() {
baidumap.display();
}
}
showMap(baiduAdapter); //这样就不要修改 showMap函数了
通常,我们还会对数据进行适配,如果数据不符合我们组件要求的格式的话,我们还会在数据外面套适配器,转成我们需要的格式
网友评论