js設計模式筆記 介面卡模式

2021-07-23 05:43:39 字數 1011 閱讀 5253

介面卡模式可用來在現有介面和不相容的類之間進行適配。使用這種模式的物件又叫包裝器,因為它們在用乙個新的介面包裝另乙個物件。許多時候建立介面卡對程式設計師和介面設計人員都有好處。在設計類的時候往往會遇到有些介面不能與現有api一同使用的情況。借助於介面卡,你不用直接修改這些類也能使用它們。

介面卡可以被新增到現有**中以協調兩個不同的介面。如果現有**的介面能很好地滿足需要,那就可能沒有必要使用介面卡。但要是現有介面對於手頭的工作來說不夠直觀或實現,那麼可以使用介面卡來提供乙個更簡潔或豐富的介面。

從表面上看,介面卡模式很像門面模式。它們都要對別的物件進行包裝並改變其呈現的介面。二者的差別在於它們如何改變介面。門面元素展現的是乙個簡化的介面,它並不提供額外的選擇,而且有時為了方便完成常見任務它會做出一些假定。而介面卡則要把乙個介面轉換為另乙個介面,它並不會濾除某些能力,也不會簡化介面。如果客戶系統期待的api不可用,那就需要用到介面卡。

如:假設你有乙個物件,還有乙個以三個字串為引數的函式:

var clientobject =;

function  inte***cemethod(str1,str2,str3)

為了把clinetobject作為引數傳遞給inte***cemethod,需要介面卡,我們可以這樣建立乙個:

functon  clienttointe***ceadapter(o)

clienttointe***ceadapter函式的作用就在於對inte***cemethod

函式進行包裝,並把傳遞給它的引數轉換為後者需要的形式。

在某此情況下,從客戶一方對**進行修改是不可能的。有些程式設計師因此索性名句建立api。如果現有的介面發生了改變,那麼客戶**也必須進行相應的修改後才能用這個新的介面,否則整個應用系統就有失靈的危險。在引入新介面之後,一般說來最好向客戶方提供一些可為其實現新介面的介面卡。

以pc硬體為例,ps2插口是連線滑鼠和鍵盤的標準介面。多年以來幾乎所有pc都帶有這種介面。後來出現usb。那之前生產的ps2滑鼠沒買完怎麼辦!整了個ps2-to-usb介面卡就產生啦。

JS設計模式之介面卡模式

介面卡模式用在現有介面跟不相容的類和介面之間進行適配。用乙個新的介面包裝另乙個物件。介面卡用在協調兩個不同的介面。與門面模式的區別 門面模式展現的是乙個簡化的介面,只是對 及介面起到簡化作用,不提供額外的選擇。介面卡模式則是需要把乙個介面轉換為另外乙個介面,完全保留介面,並且不會簡化介面。var c...

設計模式 介面卡模式 類介面卡 物件介面卡

乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...

設計模式之介面卡模式(類介面卡模式)

介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...