如果去歐洲國家去旅遊的話,他們的插座如下圖最左邊,是歐洲標準。而我們使用的插頭如下圖最右邊的。因此我們的膝上型電腦,手機在當地不能直接充電。所以就需要乙個插座轉換器,轉換器第1面插入當地的插座,第2麵供我們充電,這樣使得我們的插頭在當地能使用。生活中這樣的例子很多,手機充電器(將220v轉換為5v的電壓),讀卡器等,其實就是使用到了介面卡模式。
將乙個類的介面轉換成客戶希望的另外乙個介面,使得原本由於介面不相容而不能一起工作的那些類能一起工作。
介面卡模式分為類介面卡模式和物件介面卡模式,前者類之間的耦合度比後者高,且要求程式設計師了解現有元件庫中的相關元件的內部結構,所以應用相對較少些。
介面卡模式(adapter)包含以下主要角色:
實現方式:定義乙個介面卡類來實現當前系統的業務介面,同時又繼承現有元件庫中已經存在的元件。
【例】讀卡器
現有一台電腦只能讀取sd卡,而要讀取tf卡中的內容的話就需要使用到介面卡模式。建立乙個讀卡器,將tf卡中的內容讀取出來。
// sd卡的介面
public
inte***ce
sdcard
// sd卡實現類
public
class
sdcardimpl
implements
sdcard
public
void
writesd
(string msg)
}// 電腦類
public
class
computer
return sdcard.
readsd()
;}}// tf卡介面
public
inte***ce
tfcard
// tf卡實現類
public
class
tfcardimpl
implements
tfcard
public
void
writetf
(string msg)
}// 定義介面卡類(sd相容tf)
public
class
sdadaptertf
extends
tfcardimpl
implements
sdcard
public
void
writesd
(string msg)
}// 測試類
public
class
client
}
sdcard read msg : hello word sd
***************
adapter read tf card
tfcard read msg : hello word tfcard
類介面卡模式違背了合成復用原則。類介面卡是客戶類有乙個介面規範的情況下可用,反之不可用。 介面卡模式(類介面卡 物件介面卡)
做個筆記 引用 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...