設(shè)計(jì)模式思考----適配器模式
來源:程序員人生 發(fā)布時(shí)間:2015-05-26 08:08:26 閱讀次數(shù):3271次
將1個(gè)類的接口轉(zhuǎn)換成客戶希望的另外1個(gè)接口。Adapter模式使得本來由于接口不兼容而不能1起工作的那些類可以在1起工作。
解決的問題:
即Adapter模式使得本來由于接口不兼容而不能1起工作的那些類可以在1起工作。
類圖:

模式中的角色
目標(biāo)接口(Target):客戶所期待的接口。目標(biāo)可以是具體的或抽象的類,也能夠是接口。
需要適配的類(Adaptee):需要適配的類或適配者類。
適配器(Adapter):通過包裝1個(gè)需要適配的對象,把原接口轉(zhuǎn)換成目標(biāo)接口。
注:在GoF的設(shè)計(jì)模式中,對適配器模式講了兩種類型,類適配器模式和對象適配器模式。由于類適配器模式通過量重繼承對1個(gè)接口與另外一個(gè)接口進(jìn)行匹配,而C#、java等語言都不支持多重繼承,因此這里只是介紹對象適配器。
優(yōu)點(diǎn):
通過適配器,客戶端可以調(diào)用同1接口,因此對客戶端來講是透明的。這樣做更簡單、更直接、更緊湊。復(fù)用了現(xiàn)存的類,解決了現(xiàn)存類和復(fù)用環(huán)境要求不1致的問題。將目標(biāo)類和適配者類解耦,通過引入1個(gè)適配器類重用現(xiàn)有的適配者類,而無需修改原有代碼。1個(gè)對象適配器可以把多個(gè)不同的適配者類適配到同1個(gè)目標(biāo),也就是說,同1個(gè)適配器可以把適配者類和它的子類都適配到目標(biāo)接口。
缺點(diǎn):對對象適配器來講,更換適配器的實(shí)現(xiàn)進(jìn)程比較復(fù)雜。
適用處景:系統(tǒng)需要使用現(xiàn)有的類,而這些類的接口不符合系統(tǒng)的接口。想要建立1個(gè)可以重用的類,用于與1些彼此之間沒有太大關(guān)聯(lián)的1些類,包括1些可能在將來引進(jìn)的類1起工作。兩個(gè)類所做的事情相同或相似,但是具有不同接口的時(shí)候。舊的系統(tǒng)開發(fā)的類已實(shí)現(xiàn)了1些功能,但是客戶端卻只能以另外接口的情勢訪問,但我們不希望手動(dòng)更改原有類的時(shí)候。使用第3方組件,組件接口定義和自己定義的不同,不希望修改自己的接口,但是要使用第3方組件接口的功能。
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)