適配器模式(Adapter)

適配器模式(Adapter)

適配器模式:將一個(gè)類(lèi)的接口,轉(zhuǎn)換成客戶(hù)期望的另一個(gè)接口。適配器讓原本接口不兼容的類(lèi)可以合作無(wú)間。

適配器非常形象的圖:

形象圖

非常形象的模式,就像生活中的手機(jī)充電器,電腦的電源適配器一樣。

使用場(chǎng)景

當(dāng)想使用一個(gè)已經(jīng)存在的類(lèi),但是不匹配需求接口的時(shí)候,可以考慮使用適配器模式來(lái)適配,如果有需要還可以做 雙向適配,來(lái)完成適配。

類(lèi)圖

適配器實(shí)現(xiàn)Client所需的目標(biāo)的接口,并包裹一個(gè)被適配者的對(duì)象,收到方法調(diào)用的時(shí)候,委托給被適配者,來(lái)達(dá)到適配的目標(biāo)。

小結(jié)

優(yōu)勢(shì)

  1. 使用對(duì)象組合的方式,用修改的接口來(lái)包裝適配者
  2. 被適配者的任何子類(lèi)也可以搭配適配器使用
  3. 個(gè)人覺(jué)得使用適配器最大的好處是 不需要修改客戶(hù)端以及被適配者的代碼。

缺點(diǎn)

  1. 需要實(shí)現(xiàn)所有的方法去完成適配,如果目標(biāo)非常大,那么工作量也比較大。

NOTE:之前提到的都是 對(duì)象適配器,另外還有一種叫做 類(lèi)適配器,不過(guò)類(lèi)適配器需要多重繼承去實(shí)現(xiàn)(Adapter需要繼承Target和Adaptee),而不是組合的方式去實(shí)現(xiàn)。

適配器 裝飾者 外觀(guān)模式的不同:

適配器是:將一個(gè)接口轉(zhuǎn)成另一個(gè)接口
裝飾者是:不改變接口,但加入新的責(zé)任
外觀(guān)模式是:讓接口更簡(jiǎn)單

要點(diǎn)

  1. 當(dāng)需要使用一個(gè)現(xiàn)有的類(lèi)而其接口并不符合你的需要時(shí),就使用適配器。
  2. 適配器改變接口以符合客戶(hù)的期望。
  3. 實(shí)現(xiàn)一個(gè)適配器可能需要一番功夫,也可能不費(fèi)功夫,視目標(biāo)接口的大小與復(fù)雜度而定。
  4. 適配器模式有兩種形式:對(duì)象適配器和類(lèi)適配器。類(lèi)適配器需要用到多重繼承。
  5. 適配器將一個(gè)對(duì)象包裝起來(lái)以改變其接口;裝飾者將一個(gè)對(duì)象包裝起來(lái)以增加新的行為和責(zé)任;而外觀(guān)將一群對(duì)象『包裝』起來(lái)以簡(jiǎn)化其接口。

See also

Adapter pattern
Adapter Design Pattern Example

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容