介面卡模式在開發中使用頻率很高,那麼何為介面卡呢?介面卡就是將兩個不相容的類融合到一起,或者說將兩種不同的東西通過轉換使得它們可以相互協作起來。比如生活中的手機充電器,家用電壓220v,手機充電只需用到5v,那麼手機充電器就是把220v裝換為手機合適使用的電壓來進行充電,手機充電器就是乙個電源介面卡。
介面卡模式把乙個類的介面變成客戶端所期待的另一種介面,從而使得原本因介面不匹配而無法工作在一起的兩個類能夠工作在一起。
角色介紹:
以手機充電器為例,首先我們定義目標電壓5v介面:
5v電壓,target角色
public
inte***ce
volt5
target角色給出了需要的目標介面,這裡對應的target的目標是獲得5v輸出電壓。我們再定義乙個需要轉換的家用電壓:
220v電壓,adaptee角色
public
class
volt220
}
adaptee角色是要轉換成target的,家用電壓是220v,需要轉換成5v,此時就需要電源介面卡進行這個過程,我們再定義乙個電源介面卡:
手機充電器,即adapter角色
public
class
phoneadapter
implements
volt5
public
intgetvolt220()
@override
public
intgetvolt5()
}
adapter角色需要實現target介面,獲得我們所需要的電壓,adapter還包裝了adaptee,並通過組合的方式獲得了adaptee的api。下面我們來看一下如何使用:
public
class
test
}
輸出結果很簡單就不再給出。可以看到介面卡模式還是很簡單的,就是在兩個不相容的介面之間加乙個介面卡來進行介面轉換。
以上只是適配模式的經典實現,將原本不相容的介面融合在一起,在實際開發中也可以有靈活的應用,比如輸入有無數種型別,但是輸出的型別是統一的,就可以通過adapter返回乙個統一的輸出,而具體的輸入就留給使用者處理,內部只要知道輸出的是符合的型別即可。
本文相關原始碼
介面卡模式(類介面卡 物件介面卡)
做個筆記 引用 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...