介面卡模式(adapter):將乙個類的介面轉換成客戶希望的另外乙個介面。adapter 模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。
適用場景:
1、已經存在的類的介面不符合我們的需求;
2、建立乙個可以復用的類,使得該類可以與其他不相關的類或不可預見的類(即那些介面可能不一定相容的類)協同工作;
3、在不對每乙個都進行子類化以匹配它們的介面的情況下,使用一些已經存在的子類。
uml圖:
介面卡的意義在於,就是為了將
已存在的東西(介面)
轉換成適合我們的需要、能被我們所利用。非常形象的比喻:就像生活中的手機充電器,電腦的電源介面卡一樣。介面卡就行client和target的中介軟體。
**實現:
普通介面
public class concretetarget implements target
}//目標介面
inte***ce target
特殊介面:
public class adapter
}
所以我們要實現普通和特殊的功能,
class adapter extends adaptee implements target
}
測試
public class client
}
小結使用物件組合的方式,用修改的介面來包裝適配者
被適配者的任何子類也可以搭配介面卡使用
個人覺得使用介面卡最大的好處是 不需要修改客戶端以及被適配者的**。
需要實現所有的方法去完成適配,如果目標非常大,那麼工作量也比較大。
note:之前提到的都是 物件介面卡,另外還有一種叫做 類介面卡,不過類介面卡需要多重繼承去實現(adapter需要繼承target和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...