目標(target)介面:當前系統業務所期待的介面,它可以是抽象類或介面。對照上圖理解: 【例】讀卡器適配者(adaptee)類:它是被訪問和適配的現存元件庫中的元件介面。
介面卡(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
}
實現方式:物件介面卡模式可釆用將現有元件庫中已經實現的元件引入介面卡類中,該類同時實現當前系統的業務介面。
上面的案例:使用物件介面卡模式的類圖
可以發現,其他地方沒有改動,改動的只是介面卡和適配者之間的****,原來通過介面卡繼承
適配者實現類,現在通過介面卡聚合
適配者介面
//建立介面卡物件(sd相容tf)
public
class
sdadaptertf
implements
sdcard
public string readsd()
public
void
writesd
(string msg)
}//測試類
public
class
client
}
設計模式 介面卡模式 類介面卡 物件介面卡
乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...
介面卡模式(類介面卡 物件介面卡)
做個筆記 引用 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 通過包裝乙個需要適配的物件,把原介面轉換成目標介面。適配...