日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

23种设计模式之适配器模式

發(fā)布時(shí)間:2024/8/23 asp.net 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 23种设计模式之适配器模式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

適配器模式的定義

定義: 將一個(gè)類的接口變換成客戶端所期待的另一種接口, 從而使原本因接口不匹配而無(wú)法在一起工作的兩個(gè)類能夠在一起工作.

通俗的說(shuō), 就是有 A、B兩個(gè)接口,

?

現(xiàn)在要求把A和B安裝在一起使用, 兩者的接口不一致, 怎么辦? 引入一個(gè)物體C, 如下圖:

?

引入C物體后, C適應(yīng)了A的接口, 同時(shí)也適應(yīng)了B的接口, 三者就可以進(jìn)行組合了

?

其中的C物體就叫做適配器

適配器模式的類圖如下:

?

其中各個(gè)角色:

  • Target 目標(biāo)角色: 該角色定義把其他類轉(zhuǎn)換成哪種接口
  • Adaptee 源角色: 定義要把誰(shuí)轉(zhuǎn)換成目標(biāo)角色
  • Adapter 適配器角色: 適配器模式的核心角色, 它的職責(zé)就是把源角色轉(zhuǎn)換成目標(biāo)角色.
  • 大致代碼如下:

    ?

    適配器模式的應(yīng)用

    適配器模式的優(yōu)點(diǎn):

  • 適配器模式可以讓兩個(gè)沒(méi)有任何關(guān)系的類在一起運(yùn)行
  • 增加了類的透明性. 我們?cè)L問(wèn)的Target 目標(biāo)角色, 但是具體的實(shí)現(xiàn)都委托給了源角色, 而這些對(duì)高層模塊是透明的
  • 提高了類的復(fù)用度. 源角色在原有的系統(tǒng)中還可以正常使用, 而在目標(biāo)角色中也可以充當(dāng)新的演員
  • 靈活性非常好. 某一天, 突然不想要適配器, 刪除掉這個(gè)適配器就可以了, 其他代碼都不用修改
  • 適配器模式的使用場(chǎng)景:

    適配器的使用場(chǎng)景只要記住一點(diǎn)就夠了: 你有動(dòng)機(jī)修改一個(gè)已經(jīng)投產(chǎn)中的接口時(shí), 適配器模式可能是最適合你的模式. 比如系統(tǒng)擴(kuò)展了, 需要使用一個(gè)已有或新建立的類, 但這個(gè)類有不符合系統(tǒng)的接口等

    適配器模式最好在詳細(xì)設(shè)計(jì)階段不要考慮它, 它不是為了解決還在開(kāi)發(fā)階段的問(wèn)題, 而是解決正在服役的項(xiàng)目問(wèn)題, 沒(méi)有一個(gè)系統(tǒng)分析師會(huì)在詳細(xì)設(shè)計(jì)的時(shí)候考慮使用適配器模式, 這個(gè)模式的主要場(chǎng)景是擴(kuò)展應(yīng)用中.


    有時(shí)源角色并不單單是一個(gè)類, 可能是多個(gè)類, 這時(shí)使用繼承明顯不行, 因?yàn)閖ava并不支持多繼承, 這時(shí)可以使用類關(guān)聯(lián)等方法, 只要適配器模式的思想不變, 如何實(shí)現(xiàn)有多種方法

    適配器模式又叫做變壓器模式, 也叫做包裝模式(裝飾模式也叫做包裝模式)

    適配器模式是一個(gè)補(bǔ)償模式, 或者說(shuō)是一個(gè)"補(bǔ)救"模式, 通常用來(lái)解決接口不相容的問(wèn)題, 在百分之百的完美設(shè)計(jì)中是用不到的.

    總結(jié)

    以上是生活随笔為你收集整理的23种设计模式之适配器模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。