設計模式總結之Adapter Pattern(介面卡模式)
目錄
建立型設計模式:
結構型設計模式:
行為型設計模式:
Adapter Pattern(介面卡模式)
意圖
將一個類的介面轉換成另外一個客戶希望的介面。Adapter 模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。注:介面卡模式在詳細設計階段不需要考慮它,它是為了對現有系統或產品介面相容時,也就是既成事實的情況下的補救措施。
適用性
* 你想使用一個已經存在的類,而它的介面不符合你的需求。* 你想建立一個可以複用的類,該類可以與其他不相關的類或不可預見的類(即那些介面可能不一定相容的類)協同工作。
* (僅適用於物件Adapter)你想使用一些已經存在的子類,但是不可能對每一個都進行子類化以匹配它們的介面。物件介面卡可以適配它的父類介面。
結構
2、物件介面卡
參與者
Target (目標角色,要用的介面)
— 定義Client使用的與特定領域相關的介面。
Client (使用場景)
— 與符合Target介面的物件協同。
Adaptee (被適配者)
— 定義一個已經存在的介面,這個介面需要適配。
Adapter (介面卡,把Adaptee介面轉換為Target可用的介面)
— 對Adaptee的介面與Target介面進行適配
例子
1、 類介面卡2、 物件介面卡
優缺點
> 優點:1. 介面卡模式可以讓兩個沒有任何關係的類在一起執行,只要介面卡這個角色能夠搞定他們就成。
2. 增加了類的透明性
想想看,我們訪問的Target目標角色,但是具體的實現都委託給了源角色,而這些對高層次模組是透明的,也是它不需要關心的。
3. 提高了類的複用度當然了,源角色在原有的系統中還是可以正常使用,而在目標角色中也可以充當新的演員。
4. 靈活性非常好
某一天,突然不想要介面卡,沒問題,刪除掉這個介面卡就可以了,其他的程式碼都不用修改,基本上就類似一個靈活的構件,想用就用,不想就解除安裝。