??????
通常,客戶類
通過類的接口訪問它提供的服務(wù)。有時,現(xiàn)有的類
可以提供客戶類的功能需要,但是它所提供的接口不一定是客戶類所期望的。這是由于現(xiàn)有的接口太詳細(xì)或者缺乏詳細(xì)或接口的名稱與客戶類所查找的不同等諸多不同原因?qū)е碌摹?br />?
????? 在這種情況下,現(xiàn)有的接口需要轉(zhuǎn)化為客戶類期望的接口,這樣保證了對現(xiàn)有類的重用。如果不進(jìn)行這樣的轉(zhuǎn)化,客戶類就不能利用現(xiàn)有類所提供的功能。適配器模式可以完成這樣的轉(zhuǎn)化。適配器模式建議定義一個包裝類,包裝有不兼容接口的對象。這個包裝類指的就是適配器(Adapter),它包裝的對象就是適配者(Adaptee).適配器提供客戶類需要的接口,適配器接口的實(shí)現(xiàn)是把客戶類的請求轉(zhuǎn)化為對適配者的相應(yīng)接口的調(diào)用。換句話說:當(dāng)客戶類調(diào)用適配器的方法時,在適配器類的內(nèi)部調(diào)用適配者類的方法,這個過程對客戶類是透明的,客戶類并不直接訪問適配者類。因此,適配器可以使由于借口不兼容而不能交互的類可以一起工作。
適配器總體上可以分為兩類:類適配器(
Class?Adapter)
和對象適配器
(Object?Adapter)
類適配器:
目標(biāo)角色:









源角色:









適配器角色:










對象適配器:
目標(biāo)角色和源角色與類適配器一樣,適配器角色如下:





























參考資料:http://www.javaresearch.org/article/showarticle.jsp?column=31&thread=39863
?《Java與模式》