七 介面卡模式

2021-07-03 06:52:09 字數 1114 閱讀 1045

介面卡模式

定義:將乙個類的介面,轉化成客戶期望的另乙個介面,介面卡讓原本介面不相容的類可以合作無間。

我們周圍的介面卡

最常見的例子是三孔插座和兩孔插座,如果牆上有乙個三孔插座,但是我們的充電器又只能使用兩孔的插座,那麼我們通常是接一條帶有兩孔和三孔的插座其插頭是三個的,以適應不同的需求。

物件導向介面卡

假設已有乙個軟體系統,你希望它能和乙個新的廠商類庫搭配使用,但是這個新廠商的介面不同於舊廠商的介面,不改變現有**,如何解決這個問題?寫乙個類,將新廠商介面轉接成你所期望的介面。

這個介面卡實現了你的類所期望的介面,而且也能和廠商的介面溝通。

火雞介面卡

現在假設你缺鴨子物件,想用一些火雞物件冒充。這兩個物件介面不同,不能直接用,所以來寫個介面卡吧。

先看鴨子介面

public inte***ce duck

綠頭鴨是鴨子的子類

public class mallardduck implements duck

public void fly()

火雞介面

public inte***ce turkey

火雞的具體實現類

public class wildturkey implements turkey

public void fly()

火雞介面卡

//首先,要實現想轉換成的型別介面,也就是你的客戶所期望看到的介面

public class turkeyadapter implements duck   //

實現介面中所有的方法

public void quack()   //

火雞的飛行距離很短,不像鴨子可以長途飛行, //

要讓鴨子和火雞的飛行對應,必須連續五次呼叫火雞的fly來完成

public void fly()  

}   }

測試介面卡 

public class ducktestdrive  

public static voidtestduck(duck duck)  

}  

設計模式 七 介面卡模式

adapter pattern 將乙個類的介面轉換成客戶希望的另外乙個介面。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 通過包裝乙個需要適配的物件,把原介面轉換成目標介面。適配...