介面卡模式
要點:
1. 介面卡模式主要應用於「希望復用一些現存的類,但是介面又與復用環境要求不一致的情況」,在遺留**復用、類庫遷移等方面非常有用。
2. 介面卡模式有物件介面卡和類介面卡兩種形式的實現結構,但是類介面卡採用「多繼承」的實現方式,帶來了不良的高耦合,所以一般不推薦使用。物件介面卡採用「物件組合」的方式,更符合松耦合精神。
類的介面卡模式結構圖(繼承)
物件的介面卡模式結構圖(組合)
(物件介面卡的**實現)
target:定義client使用的與特定領域相關的介面
public inte***ce target
adaptee:現在需要適配的已經存在的介面
public class adaptee
}adapter:對adaptee 的介面與target介面進行適配
public class adapter implements target
public voit request()
private adaptee adaptee;
}適用性:
1. 系統需要使用現有的類,而此類的介面不符合系統的需要。
2. 想要建立乙個可以重複使用的類,用於與一些彼此之間沒有太大關聯的一些類,包括一些可能在將來引進的類一起工作。這些源類不一定有很複雜的介面。
3. (對物件介面卡而言)在設計裡,需要改變多個已有子類的介面,如果使用類的介面卡模式,就要針對每乙個子類做乙個介面卡,而這不太實際。
效果及優缺點:
對於類介面卡:
1. 用乙個具體的adapter類對adaptee和taget進行匹配。結果是當我們想要匹配乙個類以及所有它的子類時,類adapter將不能勝任工作。
2. 使得adapter可以override(重定義) adaptee的部分行為,因為adapter是adaptee的乙個子類。
對於物件介面卡:
1. 允許乙個adapter與多個adaptee,即adaptee本身以及它的所有子類(如果有子類的話)同時工作。adapter也可以一次給所有的adaptee新增功能。
2. 使得override(重定義)adaptee的行為比較困難。如果一定要override adaptee的方法,就只好先做乙個adaptee的子類以override adaptee的方法,然後再把這個子類當作真正的adaptee源進行適配。
介面卡模式(類介面卡 物件介面卡)
做個筆記 引用 public inte ce usb public inte ce psp public class usber implements usb 類介面卡 psp適用usb介面 public class usbadapter extends usber implements psp 物...
介面卡模式 預設介面卡,類介面卡,物件介面卡
模式思想 改變乙個類的對外介面 增加或減少 以滿足不同外部呼叫者的需求 角色成員 目標介面 target 客戶所期待的介面。目標可以是具體的或抽象的類,也可以是介面。需要適配的類 adaptee 需要適配的類或適配者類。介面卡 adapter 通過包裝乙個需要適配的物件,把原介面轉換成目標介面。適配...
設計模式 介面卡模式 類介面卡 物件介面卡
乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...