英雄聯(lián)盟中的設(shè)計(jì)模式-適配器模式

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

鍵盤的Q按鍵按多了難免會(huì)損壞,如果沒(méi)有了Q按鍵,我們?nèi)绾畏Q霸聯(lián)盟?不用著急,只要使用了適配器模式,我們可以按空格鍵施放第一個(gè)技能,就再也不用擔(dān)心Q按鈕損壞了。


適配器模式重在不改變?cè)瓉?lái)的接口,將其他類的接口轉(zhuǎn)換成另一個(gè)符合客戶期望的接口。此模式比較簡(jiǎn)單,但有兩種模式:類適配器和對(duì)象適配器。在這里只詳細(xì)說(shuō)明對(duì)象適配器,因?yàn)橹挥性谑褂枚嘀乩^承的時(shí)候,才會(huì)用到類適配器(今后有時(shí)間可以講給大家聽(tīng))。

適配器模式類圖如下:


調(diào)用過(guò)程大致描述為:

  1. 客戶通過(guò)調(diào)用目標(biāo)接口發(fā)起請(qǐng)求,從而調(diào)用適配器的接口
  2. 適配器將客戶的請(qǐng)求轉(zhuǎn)換成被適配者的一個(gè)或多個(gè)接口的調(diào)用

從類圖可以得知,適配器持有被適配者的實(shí)例(組合)。當(dāng)客戶接收到調(diào)用的結(jié)果后,并不會(huì)察覺(jué)整個(gè)過(guò)程是適配器在起轉(zhuǎn)換作用,這也滿足代碼解耦的原則。

點(diǎn)擊獲取具體代碼及說(shuō)明

你可能會(huì)覺(jué)得適配器模式有點(diǎn)像裝飾者模式,這里只需要記住兩條規(guī)則便能將其分清:
裝飾者:不改變接口,但加入職責(zé)
適配器:將一個(gè)接口轉(zhuǎn)換成另一個(gè)接口

傾情告白:實(shí)現(xiàn)一個(gè)適配器可能要一番功夫,也可能不費(fèi)功夫,要看目標(biāo)接口的大小與復(fù)雜程度。

關(guān)注微信公眾號(hào)CodingArtist,可以第一時(shí)間得到文章更新通知! _

最后編輯于
?著作權(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)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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