? ? 適配器 又叫 包裝器(wrapper),適配器模式的作用是解決兩個(gè)軟件實(shí)體間的接口?不兼容?的問(wèn)題。使用適配器模式之后,原本由于接口不兼容而不能工作的兩個(gè)軟件實(shí)體可以一起工作;
? ? 生活中比較形象的例子就是 我們常用的 電源適配器槽卫,比如電腦的?電源適配器拿诸, 將我們 220v 的交流電源 轉(zhuǎn)換為 電腦電池支持的電壓入录;
????作用: 舊接口格式 和 使用者 不兼容; 中間加一個(gè) 適配器 轉(zhuǎn)換接口佳镜;
????適用場(chǎng)景: 1 封裝舊接口 僚稿; 2 vue computed
? ? ? ? 示例:封裝舊接口?
? ? 另一個(gè)示例
? ??????對(duì)于接入不同的 庫(kù),都有一個(gè) show 方法 提供給我們使用蟀伸;
? ??????我們有一個(gè)同一個(gè)的調(diào)用方法蚀同;
? ??????????但是當(dāng)?shù)谌齻€(gè)庫(kù)沒(méi)有提供 show 方法, 而是 display啊掏;
? ? ? ? ? ? ?使用 適配器模式:
? ? 適配器?另一個(gè)常用的場(chǎng)景: 對(duì)數(shù)據(jù)的處理
? ? ? ? 當(dāng)我們從第三方接口獲取數(shù)據(jù) 進(jìn)行渲染的時(shí)候????
? ? ? ? 如果此時(shí)我們切換了另外一個(gè)數(shù)據(jù)源蠢络,此時(shí)的數(shù)據(jù)結(jié)構(gòu)和原來(lái)的 完全不一樣,那么我們是不是需要全部重新處理頁(yè)面的邏輯迟蜜,此時(shí)適配器模式就起到了作用刹孔,我們只需要講這個(gè)數(shù)據(jù)源 適配 成原來(lái)的數(shù)據(jù)格式,而不用去更改 我們?cè)瓉?lái)的頁(yè)面處理邏輯娜睛;
????適配器模式主要用來(lái)解決?兩個(gè)已有接口之間不匹配的問(wèn)題髓霞,它不考慮這些接口是怎樣實(shí)現(xiàn)的,也不考慮它們將來(lái)可能會(huì)如何演化畦戒。適配器模式?不需要改變已有的接口方库,就能夠使它們協(xié)同作用;
????裝飾器模式 和 代理模式 也不會(huì)改變?cè)袑?duì)象的接口障斋,但?裝飾器模式?的作用是為了?給對(duì)象增加功能( 適配器不算是增加新功能)纵潦。裝飾器模式常常形成一條長(zhǎng)的裝飾鏈,而適配器模式通常只包裝一次垃环。代理模式是為了 控制對(duì)對(duì)象的訪(fǎng)問(wèn)邀层,通常也只包裝一次;
? ??適配器模式?是 原來(lái)的 接口已經(jīng)不能使用遂庄,需要一個(gè)適配器來(lái)做處理寥院; 而 裝飾器 是 原來(lái)的接口還能使用,只不過(guò)是添加一些新功能罷了涧团;
????外觀(guān)模式的作用倒是和適配器比較相似只磷,有人把外觀(guān)模式看成一組對(duì)象的適配器经磅,但外觀(guān)模式最顯著的特點(diǎn)是?定義了一個(gè)新的接口泌绣;
? ??設(shè)計(jì)原則驗(yàn)證: 將 舊接口 和 使用者 進(jìn)行分離 ; 符合 開(kāi)放封閉?原則预厌。