




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Design Patterns適配器模式劉 偉 (Sunny)大綱結構型模式適配器模式概述適配器模式的結構與實現適配器模式的應用實例缺省適配器模式雙向適配器模式適配器模式的優缺點與適用環境2結構型模式結構型模式(Structural Pattern)關注如何將現有類或對象組織在一起形成更加強大的結構不同的結構型模式從不同的角度組合類或對象,它們在盡可能滿足各種面向對象設計原則的同時為類或對象的組合提供一系列巧妙的解決方案3結構型模式類結構型模式關心類的組合,由多個類組合成一個更大的系統,在類結構型模式中一般只存在繼承關系和實現關系對象結構型模式關心類與對象的組合,通過關聯關系,在一個類中定義另
2、一個類的實例對象,然后通過該對象調用相應的方法4結構型模式結構型模式一覽表模式名稱定 義學習難度使用頻率適配器模式(Adapter Pattern)將一個類的接口轉換成客戶希望的另一個接口。適配器模式讓那些接口不兼容的類可以一起工作。橋接模式(Bridge Pattern)將抽象部分與它的實現部分解耦,使得兩者都能夠獨立變化。組合模式(Composite Pattern)組合多個對象形成樹形結構,以表示具有部分-整體關系的層次結構。組合模式讓客戶端可以統一對待單個對象和組合對象。裝飾模式(Decorator Pattern)動態地給一個對象增加一些額外的職責。就擴展功能而言,裝飾模式提供了一種
3、比使用子類更加靈活的替代方案。外觀模式(Facade Pattern)為子系統中的一組接口提供一個統一的入口。外觀模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。享元模式(Flyweight Pattern)運用共享技術有效地支持大量細粒度對象的復用。代理模式(Proxy Pattern)給某一個對象提供一個代理或占位符,并由代理對象來控制對原對象的訪問。5適配器模式概述電源適配器6適配器模式概述分析現實生活:不兼容:生活用電220V 筆記電腦20V 引入 AC Adapter(交流電適配器)軟件開發:存在不兼容的結構,例如方法名不一致引入適配器模式7適配器模式概述適配器模式的定義
4、對象結構型模式 / 類結構型模式 適配器模式:將一個類的接口轉換成客戶希望的另一個接口。適配器模式讓那些接口不兼容的類可以一起工作。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、以表示一個方法或者方法的集合9適配器模式的結構與實現適配器模式的結構(類適配器)10適配器模式的結構與實現適配器模式的結構(對象適配器)11適配器模式的結構與實現適配器模式的結構適配器模式包含以下3個角色:Target(目標抽象類)Adapter(適配器類)Adaptee(適配者類)12適配器模式的結構與實現適配器模式的實現典型的類適配器代碼:class Adapter : Adaptee, Targetpublic void Request()base.SpecificRequest();13適配器模式的結構與實現適配器模式的實現典型的對象適配器代碼:class Adapter : Targ
6、etprivate Adaptee adaptee; /維持一個對適配者對象的引用public Adapter(Adaptee adaptee)this.adaptee = adaptee;public void Request()adaptee.SpecificRequest();/轉發調用14適配器模式的應用實例實例說明在為某學校開發教務管理系統時,開發人員發現需要對學生成績進行排序和查找,該系統的設計人員已經開發了一個成績操作接口ScoreOperation,在該接口中聲明了排序方法Sort(int) 和查找方法Search(int, int),為了提高排序和查找的效率,開發人員決定重用
7、現有算法庫中的快速排序算法類QuickSortClass和二分查找算法類BinarySearchClass,其中QuickSortClass的QuickSort(int)方法實現了快速排序,BinarySearchClass的BinarySearch (int, int)方法實現了二分查找。由于某些原因,開發人員已經找不到該算法庫的源代碼,無法直接通過復制和粘貼操作來重用其中的代碼;而且部分開發人員已經針對ScoreOperation接口編程,如果再要求對該接口進行修改或要求大家直接使用QuickSortClass類和BinarySearchClass類將導致大量代碼需要修改。現使用適配器模式
8、設計一個系統,在不修改已有代碼的前提下將類QuickSortClass和類BinarySearchClass的相關方法適配到ScoreOperation接口中。15適配器模式的應用實例實例類圖算法庫重用結構圖16適配器模式的應用實例實例代碼(1) ScoreOperation:抽象成績操作類,充當目標接口(2) QuickSortClass:快速排序類,充當適配者(3) BinarySearchClass:二分查找類,充當適配者(4) OperationAdapter:操作適配器,充當適配器(5) 配置文件App.config(6) Program:客戶端測試類演示參考代碼 (DesignPa
9、tternAdapterSample)17適配器模式的應用實例結果及分析將具體適配器類的類名存儲在配置文件App.config中擴展方便18缺省適配器模式定義缺省適配器模式(Default Adapter Pattern):當不需要實現一個接口所提供的所有方法時,可先設計一個抽象類實現該接口,并為接口中每個方法提供一個默認實現(空方法),那么該抽象類的子類可以選擇性地覆蓋父類的某些方法來實現需求,它適用于不想使用一個接口中的所有方法的情況,又稱為單接口適配器模式。19缺省適配器模式結構ServiceInterface(適配者接口)AbstractServiceClass(缺省適配器類)Conc
10、reteServiceClass(具體業務類)20缺省適配器模式實現缺省適配器類的典型代碼片段:abstract class AbstractServiceClass : ServiceInterfacepublic void ServiceMethod1() /空方法public void ServiceMethod2() /空方法public void ServiceMethod3() /空方法21雙向適配器結構22雙向適配器實現雙向適配器典型代碼片段public class Adapter : Target, Adaptee /同時維持對抽象目標類和適配者的引用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適配器模式的優缺點與適用環境模式優點將目標類和適配者類解耦,通過引入一個適配器類來重用現有的適配者類,無須修改原有結構增加了類的透明性和復用性,提高了適配者的復用性,同一個適配者類可以在多個不同的系統中復用靈活性和擴展性非常好類適配器模式:置換一些適配者的方法很方便對象適配器模式:可以把多個不同的適配者適配到同一個目標,還可以適配一個適配者的子類24適配器模式的優缺點與適用環境模式缺點類適配器模式:(1) 一次最多只能適配一個適配者類,不能同時適配多個適配者;(2) 適配者類不能為最終類;(3) 目標抽象類只能為接口,不能為類對象適配器模式:在適配器中置換適配者類的某些方法比
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CHTS 20016-2021公路橋梁各向異性摩擦擺減隔震支座
- T/CECS 10231-2022綠色建材評價工程修復材料
- T/CECS 10185-2022裝配式建筑用密封膠
- T/CECS 10180-2022地鐵隧道疏散平臺
- T/CCMA 0190-2024純電動非公路自卸車動態噪聲試驗方法
- T/CCMA 0084-2019道路清掃機械掃盤技術要求
- T/CCMA 0073-2019挖掘機斗桿疲勞壽命試驗方法
- T/CCBD 24-2023首次公開募股(IPO)企業品牌培育指南
- T/CCAS 022-2022水泥工業大氣污染物超低排放標準
- T/CC 2-2019弓用瞄準器
- 催化裂化裝置-反再系統冷態開車(石油化工裝置仿真操作課件)
- 【地理】2023年高考真題江蘇卷(解析版)
- 舊電梯拆除施工方案
- 小學生研學旅行展示ppt模板
- 《智慧養老》創新創業大賽ppt
- 冀教版三至四年級《發展柔韌性練習》評課稿
- 漢語拼音聲母韻母拼讀全表打印版
- 運動系統病例分析01
- 天津市南開區南開中學2022-2023學年物理高二下期末復習檢測試題含解析
- 澠池鋁礦礦產資源開采與生態修復方案
- 功與功率 課件高一下學期物理人教版(2019)必修第二冊
評論
0/150
提交評論