所謂 適配器模式 就是用一個新的接口對現有的接口進行包裝,處理類與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設計模式系列一:工廠模式
JavaScript設計模式系列三:建造者模式
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com