本片文章給大家分享的是JavaScript設計模式系列五:適配器模式,有感興趣的朋友可以看一下
所謂適配器模式 就是用一個新的介面對現有的介面進行包裝,處理類別與API的不符。使用這種模式的物件又叫作包裝器。
例如我們有一個介面:
function api (x1, x2, x3) { console.log(x1 + x2 + x3); // 用console.log来模拟接口的相关操作 }
然後我們有一個物件資料:
var obj = { a: '我', b: '很', c: '帅' }
我們可以發現,我們的資料和介面的參數是不匹配的,無法直接參入obj呼叫該api。
這時候怎麼辦呢?我們可以定義一個適配器函數:
function adapter (o) { // 通过适配器函数来调用目的api api(o.a, o.b, o.c); } adapter(obj); // 我很帅
這樣,透過適配器函數 adapter() 我們就可以直接傳入obj來呼叫api了,類別與api的不匹配問題就引刃而解了。
適配器模式就是用一個新的介面對現有的介面進行包裝,處理類別與API的不符。使用這種模式的物件又叫作包裝器。
適用情況
使用已經存在的對象,但其方法或屬性介面不符合我們的要求。
想要建立一個可重複使用對象,該物件可以與其他不相關的物件或不可見的物件協同工作
#想使用的物件已經存在,但是不能對每一個都進行原型繼承以匹配它的介面。物件適配器可以適配它的父物件介面方法或屬性。
與其他模式的區別
#適配器和橋接器雖然類似,但橋接的出發點不同,橋接的目的是將介面部分和實現部分分離,從而對他們可以更容易的更獨立的加以改變。
裝飾者模式增強了物件的功能而同時又不改變它的接口,因此它對程式的透明度比適配器要好。
代理模式再不改變它的介面條件下,為另一個介面定義一個代理程式。
門面模式是為了簡化一個接口,不提供額外額選擇。
適配器則要把一個介面轉換為另一個接口,並不會濾除某些能力也不會簡化接口。
相關推薦:
以上是JavaScript設計模式系列五:適配器模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!