版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Design Patterns適配器模式劉 偉 (Sunny)大綱結(jié)構(gòu)型模式適配器模式概述適配器模式的結(jié)構(gòu)與實(shí)現(xiàn)適配器模式的應(yīng)用實(shí)例缺省適配器模式雙向適配器模式適配器模式的優(yōu)缺點(diǎn)與適用環(huán)境2結(jié)構(gòu)型模式結(jié)構(gòu)型模式(Structural Pattern)關(guān)注如何將現(xiàn)有類或?qū)ο蠼M織在一起形成更加強(qiáng)大的結(jié)構(gòu)不同的結(jié)構(gòu)型模式從不同的角度組合類或?qū)ο螅鼈冊(cè)诒M可能滿足各種面向?qū)ο笤O(shè)計(jì)原則的同時(shí)為類或?qū)ο蟮慕M合提供一系列巧妙的解決方案3結(jié)構(gòu)型模式類結(jié)構(gòu)型模式關(guān)心類的組合,由多個(gè)類組合成一個(gè)更大的系統(tǒng),在類結(jié)構(gòu)型模式中一般只存在繼承關(guān)系和實(shí)現(xiàn)關(guān)系對(duì)象結(jié)構(gòu)型模式關(guān)心類與對(duì)象的組合,通過關(guān)聯(lián)關(guān)系,在一個(gè)類中定義另
2、一個(gè)類的實(shí)例對(duì)象,然后通過該對(duì)象調(diào)用相應(yīng)的方法4結(jié)構(gòu)型模式結(jié)構(gòu)型模式一覽表模式名稱定 義學(xué)習(xí)難度使用頻率適配器模式(Adapter Pattern)將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另一個(gè)接口。適配器模式讓那些接口不兼容的類可以一起工作。橋接模式(Bridge Pattern)將抽象部分與它的實(shí)現(xiàn)部分解耦,使得兩者都能夠獨(dú)立變化。組合模式(Composite Pattern)組合多個(gè)對(duì)象形成樹形結(jié)構(gòu),以表示具有部分-整體關(guān)系的層次結(jié)構(gòu)。組合模式讓客戶端可以統(tǒng)一對(duì)待單個(gè)對(duì)象和組合對(duì)象。裝飾模式(Decorator Pattern)動(dòng)態(tài)地給一個(gè)對(duì)象增加一些額外的職責(zé)。就擴(kuò)展功能而言,裝飾模式提供了一種
3、比使用子類更加靈活的替代方案。外觀模式(Facade Pattern)為子系統(tǒng)中的一組接口提供一個(gè)統(tǒng)一的入口。外觀模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。享元模式(Flyweight Pattern)運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度對(duì)象的復(fù)用。代理模式(Proxy Pattern)給某一個(gè)對(duì)象提供一個(gè)代理或占位符,并由代理對(duì)象來控制對(duì)原對(duì)象的訪問。5適配器模式概述電源適配器6適配器模式概述分析現(xiàn)實(shí)生活:不兼容:生活用電220V 筆記電腦20V 引入 AC Adapter(交流電適配器)軟件開發(fā):存在不兼容的結(jié)構(gòu),例如方法名不一致引入適配器模式7適配器模式概述適配器模式的定義
4、對(duì)象結(jié)構(gòu)型模式 / 類結(jié)構(gòu)型模式 適配器模式:將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另一個(gè)接口。適配器模式讓那些接口不兼容的類可以一起工作。Adapter Pattern: Convert the interface of a class into another interface clients expect. Adapter lets classes work together that couldnt otherwise because of incompatible interfaces.8適配器模式概述適配器模式的定義別名為包裝器(Wrapper)模式定義中所提及的接口是指廣義的接口,它可
5、以表示一個(gè)方法或者方法的集合9適配器模式的結(jié)構(gòu)與實(shí)現(xiàn)適配器模式的結(jié)構(gòu)(類適配器)10適配器模式的結(jié)構(gòu)與實(shí)現(xiàn)適配器模式的結(jié)構(gòu)(對(duì)象適配器)11適配器模式的結(jié)構(gòu)與實(shí)現(xiàn)適配器模式的結(jié)構(gòu)適配器模式包含以下3個(gè)角色:Target(目標(biāo)抽象類)Adapter(適配器類)Adaptee(適配者類)12適配器模式的結(jié)構(gòu)與實(shí)現(xiàn)適配器模式的實(shí)現(xiàn)典型的類適配器代碼:class Adapter : Adaptee, Targetpublic void Request()base.SpecificRequest();13適配器模式的結(jié)構(gòu)與實(shí)現(xiàn)適配器模式的實(shí)現(xiàn)典型的對(duì)象適配器代碼:class Adapter : Targ
6、etprivate Adaptee adaptee; /維持一個(gè)對(duì)適配者對(duì)象的引用public Adapter(Adaptee adaptee)this.adaptee = adaptee;public void Request()adaptee.SpecificRequest();/轉(zhuǎn)發(fā)調(diào)用14適配器模式的應(yīng)用實(shí)例實(shí)例說明在為某學(xué)校開發(fā)教務(wù)管理系統(tǒng)時(shí),開發(fā)人員發(fā)現(xiàn)需要對(duì)學(xué)生成績(jī)進(jìn)行排序和查找,該系統(tǒng)的設(shè)計(jì)人員已經(jīng)開發(fā)了一個(gè)成績(jī)操作接口ScoreOperation,在該接口中聲明了排序方法Sort(int) 和查找方法Search(int, int),為了提高排序和查找的效率,開發(fā)人員決定重用
7、現(xiàn)有算法庫中的快速排序算法類QuickSortClass和二分查找算法類BinarySearchClass,其中QuickSortClass的QuickSort(int)方法實(shí)現(xiàn)了快速排序,BinarySearchClass的BinarySearch (int, int)方法實(shí)現(xiàn)了二分查找。由于某些原因,開發(fā)人員已經(jīng)找不到該算法庫的源代碼,無法直接通過復(fù)制和粘貼操作來重用其中的代碼;而且部分開發(fā)人員已經(jīng)針對(duì)ScoreOperation接口編程,如果再要求對(duì)該接口進(jìn)行修改或要求大家直接使用QuickSortClass類和BinarySearchClass類將導(dǎo)致大量代碼需要修改?,F(xiàn)使用適配器模式
8、設(shè)計(jì)一個(gè)系統(tǒng),在不修改已有代碼的前提下將類QuickSortClass和類BinarySearchClass的相關(guān)方法適配到ScoreOperation接口中。15適配器模式的應(yīng)用實(shí)例實(shí)例類圖算法庫重用結(jié)構(gòu)圖16適配器模式的應(yīng)用實(shí)例實(shí)例代碼(1) ScoreOperation:抽象成績(jī)操作類,充當(dāng)目標(biāo)接口(2) QuickSortClass:快速排序類,充當(dāng)適配者(3) BinarySearchClass:二分查找類,充當(dāng)適配者(4) OperationAdapter:操作適配器,充當(dāng)適配器(5) 配置文件App.config(6) Program:客戶端測(cè)試類演示參考代碼 (DesignPa
9、tternAdapterSample)17適配器模式的應(yīng)用實(shí)例結(jié)果及分析將具體適配器類的類名存儲(chǔ)在配置文件App.config中擴(kuò)展方便18缺省適配器模式定義缺省適配器模式(Default Adapter Pattern):當(dāng)不需要實(shí)現(xiàn)一個(gè)接口所提供的所有方法時(shí),可先設(shè)計(jì)一個(gè)抽象類實(shí)現(xiàn)該接口,并為接口中每個(gè)方法提供一個(gè)默認(rèn)實(shí)現(xiàn)(空方法),那么該抽象類的子類可以選擇性地覆蓋父類的某些方法來實(shí)現(xiàn)需求,它適用于不想使用一個(gè)接口中的所有方法的情況,又稱為單接口適配器模式。19缺省適配器模式結(jié)構(gòu)ServiceInterface(適配者接口)AbstractServiceClass(缺省適配器類)Conc
10、reteServiceClass(具體業(yè)務(wù)類)20缺省適配器模式實(shí)現(xiàn)缺省適配器類的典型代碼片段:abstract class AbstractServiceClass : ServiceInterfacepublic void ServiceMethod1() /空方法public void ServiceMethod2() /空方法public void ServiceMethod3() /空方法21雙向適配器結(jié)構(gòu)22雙向適配器實(shí)現(xiàn)雙向適配器典型代碼片段public class Adapter : Target, Adaptee /同時(shí)維持對(duì)抽象目標(biāo)類和適配者的引用private Targe
11、t target;private Adaptee adaptee;public Adapter(Target target) this.target = target;public Adapter(Adaptee adaptee) this.adaptee = adaptee;public void Request() adaptee.SpecificRequest();public void SpecificRequest() target.Request();23適配器模式的優(yōu)缺點(diǎn)與適用環(huán)境模式優(yōu)點(diǎn)將目標(biāo)類和適配者類解耦,通過引入一個(gè)適配器類來重用現(xiàn)有的適配者類,無須修改原有結(jié)構(gòu)增加了類的透明性和復(fù)用性,提高了適配者的復(fù)用性,同一個(gè)適配者類可以在多個(gè)不同的系統(tǒng)中復(fù)用靈活性和擴(kuò)展性非常好類適配器模式:置換一些適配者的方法很方便對(duì)象適配器模式:可以把多個(gè)不同的適配者適配到同一個(gè)目標(biāo),還可以適配一個(gè)適配者的子類24適配器模式的優(yōu)缺點(diǎn)與適用環(huán)境模式缺點(diǎn)類適配器模式:(1) 一次最多只能適配一個(gè)適配者類,不能同時(shí)適配多個(gè)適配者;(2) 適配者類不能為最終類;(3) 目標(biāo)抽象類只能為接口,不能為類對(duì)象適配器模式:在適配器中置換適配者類的某些方法比
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東理工學(xué)院《中西跨文化交際》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東警官學(xué)院《材料化學(xué)實(shí)驗(yàn)B》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東機(jī)電職業(yè)技術(shù)學(xué)院《中學(xué)化學(xué)教學(xué)綜合技能訓(xùn)練》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工程職業(yè)技術(shù)學(xué)院《數(shù)字化圖像處理Photoshop》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東第二師范學(xué)院《建筑施工CAD》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東財(cái)貿(mào)職業(yè)學(xué)院《建筑設(shè)計(jì)4》2023-2024學(xué)年第一學(xué)期期末試卷
- 《泌尿系統(tǒng)疾病診治》課件
- 《落落的微笑》課件
- 廣東碧桂園職業(yè)學(xué)院《電視節(jié)目播音主持》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣安職業(yè)技術(shù)學(xué)院《設(shè)計(jì)基礎(chǔ)理論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2023-2024學(xué)年福建省莆田市荔城區(qū)中山中學(xué)、九中聯(lián)考九年級(jí)(上)期末數(shù)學(xué)試卷
- 接觸網(wǎng)設(shè)備故障應(yīng)急處理
- 學(xué)校廚房設(shè)備售后服務(wù)方案
- 3D打印技術(shù)在軍事領(lǐng)域的應(yīng)用
- 2022年1月自考00850廣告設(shè)計(jì)基礎(chǔ)試題及答案含解析
- 娛樂演藝居間合同協(xié)議書范本
- 酒店服務(wù)禮儀教程-門童篇課件
- 食堂安全用電知識(shí)培訓(xùn)課件
- 湖北省黃岡市黃州區(qū)啟黃中學(xué)2023年數(shù)學(xué)九年級(jí)第一學(xué)期期末調(diào)研模擬試題含解析
- 親子鑒定報(bào)告樣本
- 智能制造職業(yè)規(guī)劃
評(píng)論
0/150
提交評(píng)論