国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

javascript設(shè)計(jì)模式 ? 適配器模式原理與應(yīng)用實(shí)例分析

瀏覽:4日期:2023-11-04 13:21:15

本文實(shí)例講述了javascript設(shè)計(jì)模式 ? 適配器模式原理與應(yīng)用。分享給大家供大家參考,具體如下:

介紹:適配器模式的產(chǎn)生也來自具體的問題,拿mac來舉例,我不能直接用mac鏈接VGA,不能直接連接網(wǎng)線接口,這是就需要提供一些轉(zhuǎn)接頭,來將一些特殊的接口與我們的火線口相鏈接。

在這個(gè)過程中轉(zhuǎn)接頭就相當(dāng)于一類適配器,mac被轉(zhuǎn)接頭所擴(kuò)展,所以mac稱之為適配者。適配器的主要作用是將客戶端的請求轉(zhuǎn)化為對適配者接口的調(diào)用。好多場景下因?yàn)榻涌诘牟患嫒荩?/p>

多一個(gè)參數(shù)少一個(gè)參數(shù),參數(shù)格式不正確,調(diào)用順序等等問題導(dǎo)致無法直接的相互調(diào)用,適配器就是這之間作為調(diào)和的方法。

定義:將一個(gè)接口轉(zhuǎn)換成客戶希望的另一個(gè)接口,使接口不兼容的那些類可以一起工作,其別名為包裝器(Wrapper)。適配器模式既可以作為類結(jié)構(gòu)型模式,也可以作為對象結(jié)構(gòu)模型。

場景:我們假設(shè)一個(gè)場景。Common組件中提供了對數(shù)組排序以及查詢的方法,需要同時(shí)傳遞數(shù)組以及查詢條件。但現(xiàn)在有一個(gè)場景,是我能獲取到數(shù)組的位置和我使用查找結(jié)果的位置不在一處。所以我們腰痛過適配器對這一類場景進(jìn)行適配兼容。

示例:

var Common = function(){ this.QuickSort = function(arr){ console.log(’QuickSort’) }; this.searchBykey = function(arr,key){ console.log(’sort’); }} var OperationAdapter = function(){ this.QuickSort = new Common(); this.arr = []; this.setArr = function(arr){ this.arr = arr; }; this.sort = function(){ this.QuickSort.QuickSort(this.arr); }; this.search = function(key){ this.QuickSort.searchBykey(this.arr, key); };} var adapter = new OperationAdapter();adapter.setArr([’1’, ’12’, ’123’])adapter.sort(); //QuickSortadapter.search(’123’); //sort

適配器模式總結(jié):

優(yōu)點(diǎn):

* 將使用與適配類解耦,通過適配器來解決定制化需求,無需對原有結(jié)構(gòu)進(jìn)行修改* 一個(gè)適配器可以把多個(gè)不同的適配者適配到同一目標(biāo)。* 適配器的靈活性和擴(kuò)展性都非常好,添加修改也很方便,符合開閉原則

缺點(diǎn):

* 適配器與業(yè)務(wù)耦合嚴(yán)重,導(dǎo)致適配器的修改需要兼顧所有使用場景

適用場景:

* 系統(tǒng)需要使用現(xiàn)有類,而現(xiàn)有類不符合系統(tǒng)需求

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運(yùn)行效果。

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》

希望本文所述對大家JavaScript程序設(shè)計(jì)有所幫助。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 茌平县| 吕梁市| 定西市| 高清| 阿克苏市| 崇州市| 页游| 昌邑市| 虎林市| 祁东县| 印江| 崇仁县| 英吉沙县| 海城市| 怀柔区| 龙游县| 六安市| 承德县| 于都县| 太和县| 夏津县| 黄浦区| 军事| 永丰县| 灌阳县| 塔河县| 正宁县| 秦安县| 文登市| 陇川县| 宣化县| 湖北省| 长葛市| 西乡县| 贵德县| 汕头市| 广昌县| 扎赉特旗| 磐石市| 庐江县| 泗阳县|