概述
將乙個類的介面轉換成使用者希望的另外乙個介面,adapter模式使得原本由於介面不相容而不能一起工作的那些類可以在一起工作。
兩種實現方式
1.類的介面卡模式:
2.物件的介面卡模式:
類的介面卡模式的uml圖,如下:
類的介面卡模式把適配的類的api轉換成為目標類的api。
上圖設計的角色有:
目標角色(target):這就是所期待得到的介面。
源角色(adapee):現在需要適配的介面。
介面卡角色(adapter):是本模式的核心,介面卡把源介面轉換成目標介面。
**示例:
inte***ce
target
//源類中不具備method2中的方法。
class
adaptee
}class
adapter
extends
adaptee
implements
target
}public
class
maintest
}
物件的介面卡模式的uml圖,如下:
核心思路與類的介面卡模式相同,只是將adapter類修改,不繼承adaptee類,而是持有adaptee類的引用。**如下:
inte***ce
target
class
adaptee
}class
adapter
implements
target
@override
public
void method2()
@override
public
void method1()
}public
class
maintest
}
介面卡模式的優缺點:
更好的復用性,更好的擴充套件性。系統需要使用現有的類,而此類的介面不符合系統的需要,那麼通過介面卡模式就可以讓這些功能得到更好的復用。在實現介面卡功能的時候,可以呼叫自己開發的功能,從而自然地擴充套件系統的功能。
缺點:過多的使用介面卡,會讓系統非常凌亂,不易整體把握。
介面卡模式Adapt
例子 牆上的插座為三孔介面,但是很多家電都是雙孔標準,這個時候就需要乙個介面卡,讓雙孔的家電通過介面卡後也可以接入三孔介面的插座 兩種介面卡 物件介面卡 三孔插座 雙孔插座 使用雙孔插座的電視 物件介面卡 author wjm date 2020 6 16 17 10 public class tv...
介面卡模式(Adapt) 設計模式(六)
作用 將乙個類的介面轉換成客戶希望的另外乙個介面。adapt 模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。解析 adapt 模式其實就是把完成同樣的乙個功能但是介面不能相容的類橋接在一起使之可以在一起工作,這個模式使得復用舊的介面成為可能.實現 adapt 模式有兩種實現辦法,一種...
設計模式之介面卡模式(類介面卡模式)
介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...