適配器模式(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ì)
- 使用對(duì)象組合的方式,用修改的接口來(lái)包裝適配者
- 被適配者的任何子類(lèi)也可以搭配適配器使用
- 個(gè)人覺(jué)得使用適配器最大的好處是 不需要修改客戶(hù)端以及被適配者的代碼。
缺點(diǎn)
- 需要實(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)
- 當(dāng)需要使用一個(gè)現(xiàn)有的類(lèi)而其接口并不符合你的需要時(shí),就使用適配器。
- 適配器改變接口以符合客戶(hù)的期望。
- 實(shí)現(xiàn)一個(gè)適配器可能需要一番功夫,也可能不費(fèi)功夫,視目標(biāo)接口的大小與復(fù)雜度而定。
- 適配器模式有兩種形式:對(duì)象適配器和類(lèi)適配器。類(lèi)適配器需要用到多重繼承。
- 適配器將一個(gè)對(duì)象包裝起來(lái)以改變其接口;裝飾者將一個(gè)對(duì)象包裝起來(lái)以增加新的行為和責(zé)任;而外觀(guān)將一群對(duì)象『包裝』起來(lái)以簡(jiǎn)化其接口。