1. 程式人生 > 程式設計 >javascript設計模式 – 介面卡模式原理與應用例項分析

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程式設計有所幫助。