在介面卡模式中,我們通過增加乙個新的介面卡類來解決介面不相容的問題,使得原本沒有任何關係的類可以協同工作。
根據介面卡類與適配者類的關係不同,介面卡模式可分為物件介面卡和類介面卡兩種,在物件介面卡模式中,介面卡與適配者之間是關聯關係;在類介面卡模式中,介面卡與適配者之間是繼承(或實現)關係。
角色target(目標抽象類):目標抽象類定義客戶所需介面,可以是乙個抽象類或介面,也可以是具體類。
adapter(介面卡類):介面卡可以呼叫另乙個介面,作為乙個轉換器,對adaptee和target進行適配,介面卡類是介面卡模式的核心,在物件介面卡中,它通過繼承target並關聯乙個adaptee物件使二者產生聯絡。
adaptee(適配者類):適配者即被適配的角色,它定義了乙個已經存在的介面,這個介面需要適配,適配者類一般是乙個具體類,包含了客戶希望使用的業務方法,在某些情況下可能沒有適配者類的源**。
類介面卡
// 被適配者的方法
public
class
adaptee
}
// 介面卡介面
public
inte***ce
target
// 介面卡
public
class
adapter
extends
adaptee
implements
target
}
物件介面卡// 介面卡
public
class
adapter
implements
target
@override
public
void
request()
}
介面介面卡//目標介面,有多個方法
public
inte***ce
idcoutput
//中間類,空實現所有方法,這是乙個抽象類
public
abstract
class
defaultadapter
implements
idcoutput
@override
public
intoutput12v()
@override
public
intoutput20v()
}//我的mac電源介面卡只需要實現20v的方法即可
public
class
macadatper
extends
defaultadapter
@override
public
intoutput20v()
public
static
void
main
(string[
] args)
}//輸出結果:
//mac電腦電壓:20
介面卡模式總結
主要優點:
具體來說,類介面卡模式還有如下優點: 類介面卡模式的缺點如下: 物件介面卡模式的缺點如下: 適用場景:介面卡模式(類介面卡 物件介面卡)
做個筆記 引用 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...