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(); //QuickSort adapter.search('123'); //sort
介面卡模式總結:
優點:
* 將使用與適配類解耦,通過介面卡來解決定製化需求,無需對原有結構進行修改
* 一個介面卡可以把多個不同的適配者適配到同一目標。
* 介面卡的靈活性和擴充套件性都非常好,新增修改也很方便,符合開閉原則
缺點:
* 介面卡與業務耦合嚴重,導致介面卡的修改需要兼顧所有使用場景
適用場景:
* 系統需要使用現有類,而現有類不符合系統需求
感興趣的朋友可以使用線上HTML/CSS/JavaScript程式碼執行工具:http://tools.jb51.net/code/HtmlJsRun測試上述程式碼執行效果。
更多關於JavaScript相關內容感興趣的讀者可檢視本站專題:《javascript面向物件入門教程》、《JavaScript錯誤與除錯技巧總結》、《JavaScript資料結構與演算法技巧總結》、《JavaScript遍歷演算法與技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程式設計有所幫助。