javascript适配器模式和组合模式原理与实现方法详解
- 技术交流
- 2024-10-01 11:33:02
一、适配器模式
1、作用:主要解决两个软件实体间接口不兼容的问题
2、实例
(1)地图渲染的适配
//谷歌和百度地图的渲染地图调用的方式不一样 var googleMap = { show: function () { console.log('开始渲染谷歌地图') } } var BaiduMap = { display: function () { console.log('开始渲染谷歌地图') } } //我们 程序中的渲染地图方法入下 var renderMap = function (map) { if (map.show instanceof Function) { map.show() } } //baiduMap 来源于第三方,不能改变其内部构造,那么需要对百度地图做一下适配 var BaiduAdapter = { show: function () { return BaiduMap.display() } }
(2)接口数据格式的统一适配
//接口数据格式的统一适配 var cityData = [{ name: 'shenzhen', id: 11 }, { name: 'guangzhou', id: 12 } ] //新数据源 var newcityData = { 'shenzhen': 11, 'guanzghou': 12, 'zhuhai': 12 } //数据格式转换适配器 var addressAdapter = function (data) { var address = []; for (var i in data) { var objTemp = {}; objTemp.name = i; objTemp.id = data[i]; address.push(objTemp) } return address; } console.log(addressAdapter(newcityData))
运行结果如下:
二、组合模式
1、图片示意
2、组合模式的例子--扫描文件夹
文件夹和文件之间的关系,非常适用组合模式来描述。文件夹里既可以包含文件,又可以包含其他文件夹。
//扫描文件夹 folder 和 file 两个类 var Folder = function (name) { this.name = name; this.file = [] } Folder.prototype.add = function (file) { this.file.push(file) } Folder.prototype.scan = function () { console.log('开始扫描文件夹'+this.name) for(var i=0;i运行结果如下:
更多设计模式相关知识点,还可以参考本站文章:
https://www.jb51.net/article/252965.htm
https://www.jb51.net/article/27973.htm
javascript适配器模式和组合模式原理与实现方法详解由讯客互联技术交流栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“javascript适配器模式和组合模式原理与实现方法详解”