javascript適配器模式和組合模式原理與實現方法詳解
更新時間:2023年07月11日 08:50:54 作者:flying_huixia
這篇文章主要介紹了javascript適配器模式和組合模式原理與實現方法,結合實例形式詳細分析了javascript適配器模式與組合模式相關原理、功能、實現方法與注意事項,需要的朋友可以參考下
一、適配器模式
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)接口數據格式的統(tǒng)一適配
//接口數據格式的統(tǒng)一適配 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<this.file.length;i++){ this.file[i].scan() } } var File = function(name){ this.name = name; } File.prototype.add = function(){ throw new Error('文件下面不能再添加文件') } File.prototype.scan = function () { console.log('開始掃描文件'+this.name) } var chinese = new File('chinese') var math = new File('math') var English = new File('English') var hobby = new File('hobby') var folder1=new Folder('subject'); folder1.add(chinese) folder1.add(math) folder1.add(English) var folder2=new Folder('entertainment') folder2.add(hobby) var folder=new Folder('doc') folder.add(folder1) folder.add(folder2) console.log(folder) folder.scan()
運行結果如下:
更多設計模式相關知識點,還可以參考本站文章:
http://chabaoo.cn/article/252965.htm
http://chabaoo.cn/article/27973.htm
您可能感興趣的文章:
- JavaScript適配器模式詳解
- javascript設計模式之Adapter模式【適配器模式】實現方法示例
- JavaScript設計模式之適配器模式介紹
- 深入理解JavaScript系列(39):設計模式之適配器模式詳解
- 詳解JavaScript實現設計模式中的適配器模式的方法
- javascript設計模式 – 適配器模式原理與應用實例分析
- JavaScript設計模式學習之適配器模式
- JavaScript 設計模式之組合模式解析
- JavaScript組合模式學習要點
- 設計模式中的組合模式在JavaScript程序構建中的使用
- javascript設計模式 – 組合模式原理與應用實例分析
- JavaScript設計模式開發(fā)中組合模式的使用教程
相關文章
js如何實現小程序wx.arrayBufferToBase64方法實例
這篇文章主要給大家介紹了關于js如何實現小程序wx.arrayBufferToBase64方法的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2022-03-03原生Javascript/原生JS修改CSS樣式的4種方式簡單示例
在網頁開發(fā)中我們經常會用到JavaScript來操作網頁元素,其中一個常見的操作就是修改元素的CSS樣式,下面這篇文章主要給大家介紹了關于原生Javascript/原生JS修改CSS樣式的4種方式,需要的朋友可以參考下2024-03-03