首頁 >web前端 >js教程 >JavaScript設計模式系列五:適配器模式

JavaScript設計模式系列五:適配器模式

不言
不言原創
2018-04-02 14:05:441174瀏覽

本片文章給大家分享的是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的不符。使用這種模式的物件又叫作包裝器。
適用情況

  1. 使用已經存在的對象,但其方法或屬性介面不符合我們的要求。

  2. 想要建立一個可重複使用對象,該物件可以與其他不相關的物件或不可見的物件協同工作

  3. #想使用的物件已經存在,但是不能對每一個都進行原型繼承以匹配它的介面。物件適配器可以適配它的父物件介面方法或屬性。

與其他模式的區別

  1. #適配器和橋接器雖然類似,但橋接的出發點不同,橋接的目的是將介面部分和實現部分分離,從而對他們可以更容易的更獨立的加以改變。

  2. 裝飾者模式增強了物件的功能而同時又不改變它的接口,因此它對程式的透明度比適配器要好。

  3. 代理模式再不改變它的介面條件下,為另一個介面定義一個代理程式。

  4. 門面模式是為了簡化一個接口,不提供額外額選擇。

  5. 適配器則要把一個介面轉換為另一個接口,並不會濾除某些能力也不會簡化接口。

相關推薦:

JavaScript設計模式系列一:工廠模式

JavaScript設計模式系列三:建造者模式

以上是JavaScript設計模式系列五:適配器模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn