javascript設計模式 ? 適配器模式原理與應用實例分析
本文實例講述了javascript設計模式 ? 適配器模式原理與應用。分享給大家供大家參考,具體如下:
介紹:適配器模式的產生也來自具體的問題,拿mac來舉例,我不能直接用mac鏈接VGA,不能直接連接網線接口,這是就需要提供一些轉接頭,來將一些特殊的接口與我們的火線口相鏈接。
在這個過程中轉接頭就相當于一類適配器,mac被轉接頭所擴展,所以mac稱之為適配者。適配器的主要作用是將客戶端的請求轉化為對適配者接口的調用。好多場景下因為接口的不兼容,
多一個參數少一個參數,參數格式不正確,調用順序等等問題導致無法直接的相互調用,適配器就是這之間作為調和的方法。
定義:將一個接口轉換成客戶希望的另一個接口,使接口不兼容的那些類可以一起工作,其別名為包裝器(Wrapper)。適配器模式既可以作為類結構型模式,也可以作為對象結構模型。
場景:我們假設一個場景。Common組件中提供了對數組排序以及查詢的方法,需要同時傳遞數組以及查詢條件。但現在有一個場景,是我能獲取到數組的位置和我使用查找結果的位置不在一處。所以我們腰痛過適配器對這一類場景進行適配兼容。
示例:
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
適配器模式總結:
優點:
* 將使用與適配類解耦,通過適配器來解決定制化需求,無需對原有結構進行修改* 一個適配器可以把多個不同的適配者適配到同一目標。* 適配器的靈活性和擴展性都非常好,添加修改也很方便,符合開閉原則
缺點:
* 適配器與業務耦合嚴重,導致適配器的修改需要兼顧所有使用場景
適用場景:
* 系統需要使用現有類,而現有類不符合系統需求
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。
更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
相關文章: