下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1. FactoryPattern工廠模式概述:定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類。FactoryMethod使一個類的實例化延遲到其子類。適用性:1. 當(dāng)一個類不知道它所必須創(chuàng)建的對象的類的時候。2. 當(dāng)一個類希望由它的子類來指定它所創(chuàng)建的對象的時候。3. 當(dāng)類將創(chuàng)建對象的職責(zé)委托給多個幫助子類中的某一個,并且你希望將哪一個幫助子類是代理者這一信息局部化的時候。類圖:2. SingletonPattern單例模式概述:保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。適用性:1. 當(dāng)類只能有一個實例而且客戶可以從一個眾所周知的訪問點訪問它時。2. 當(dāng)這個唯一實例應(yīng)該是通
2、過子類化可擴展的,并且客戶應(yīng)該無需更改代碼就能使用一個擴展的實例時。類圖:結(jié)構(gòu)型模式:3. Fa?adePattern外觀模式概述:為子系統(tǒng)中的一組接口提供一個一致的界面,F(xiàn)acade模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用。適用性:1. 當(dāng)你要為一個復(fù)雜子系統(tǒng)提供一個簡單接口時。子系統(tǒng)往往因為不斷演化而變得越來越復(fù)雜。大多數(shù)模式使用時都會產(chǎn)生更多更小的類。這使得子系統(tǒng)更具可重用性,也更容易對子系統(tǒng)進(jìn)行定制,但這也給那些不需要定制子系統(tǒng)的用戶帶來一些使用上的困難。Facade可以提供一個簡單的缺省視圖,這一視圖對大多數(shù)用戶來說已經(jīng)足夠,而那些需要更多的可定制性的用戶可以越過f
3、acade層。2. 客戶程序與抽象類的實現(xiàn)部分之間存在著很大的依賴性。引入facade將這個子系統(tǒng)與客戶以及其他的子系統(tǒng)分離,可以提高子系統(tǒng)的獨立性和可移植性。3. 當(dāng)你需要構(gòu)建一個層次結(jié)構(gòu)的子系統(tǒng)時,使用facade模式定義子系統(tǒng)中每層的入口點。如果子系統(tǒng)之間是相互依賴的,你可以讓它們僅通過facade進(jìn)行通訊,從而簡化了它們之間的依賴關(guān)系。類圖:4. AdapterPattern適配器模式概述:將一個類的接口轉(zhuǎn)換成客戶希望的另外一個接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。適用性:1. 你想使用一個已經(jīng)存在的類,而它的接口不符合你的需求。2. 你想創(chuàng)
4、建一個可以復(fù)用的類,該類可以與其他不相關(guān)的類或不可預(yù)見的類(即那些接口可能不一定兼容的類)協(xié)同工作。3. (僅適用于對象Adapter)你想使用一些已經(jīng)存在的子類,但是不可能對每一個都進(jìn)行子類化以匹配它們的接口。對象適配器可以適配它的父類接口。類圖:5. BridgePattern橋接模式概述:將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化。適用性:1. 你不希望在抽象和它的實現(xiàn)部分之間有一個固定的綁定關(guān)系。例如這種情況可能是因為,在程序運行時刻實現(xiàn)部分應(yīng)可以被選擇或者切換。2. 類的抽象以及它的實現(xiàn)都應(yīng)該可以通過生成子類的方法加以擴充。這時Bridge模式使你可以對不同的抽象接口和實現(xiàn)
5、部分進(jìn)行組合,并分別對它們進(jìn)行擴充。3. 對一個抽象的實現(xiàn)部分的修改應(yīng)對客戶不產(chǎn)生影響,即客戶的代碼不必重新編譯。4. 正如在意圖一節(jié)的第一個類圖中所示的那樣,有許多類要生成。這樣一種類層次結(jié)構(gòu)說明你必須將一個對象分解成兩個部分。5. 你想在多個對象間共享實現(xiàn)(可能使用引用計數(shù)),但同時要求客戶并不知道這一點。類圖:6. ProxyPattern代理模式概述:為其他對象提供一種代理以控制對這個對象的訪問。適用性:1. 遠(yuǎn)程代理(RemoteProxy)為一個對象在不同的地址空間提供局部代表。2. 虛代理(VirtualProxy)根據(jù)需要創(chuàng)建開銷很大的對象。3. 保護(hù)代理(Protection
6、Proxy)控制對原始對象的訪問。4. 智能指引(SmartReference)取代了簡單的指針,它在訪問對象時執(zhí)行一些附加操作。類圖:行為型模式:7. CommandPattern命令模式概述:將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進(jìn)行參數(shù)化;對請求排隊或記錄請求日志,以及支持可撤消的操作。適用性:1. 抽象出待執(zhí)行的動作以參數(shù)化某對象。2. 在不同的時刻指定、排列和執(zhí)行請求。3. 支持取消操作。4. 支持修改日志,這樣當(dāng)系統(tǒng)崩潰時,這些修改可以被重做一遍。5. 用構(gòu)建在原語操作上的高層操作構(gòu)造一個系統(tǒng)。類圖:8. StrategyPattern策略模式概述:定義一系列的算法
7、,把它們一個個封裝起來,并且使它們可相互替換。本模式使得算法可獨立于使用它的客戶而變化。適用性:1. 許多相關(guān)的類僅僅是行為有異?!安呗浴碧峁┝艘环N用多個行為中的一個行為來配置一個類的方法。2. 需要使用一個算法的不同變體。3. 算法使用客戶不應(yīng)該知道的數(shù)據(jù)??墒褂貌呗阅J揭员苊獗┞稄?fù)雜的、與算法相關(guān)的數(shù)據(jù)結(jié)構(gòu)。4. 一個類定義了多種行為,并且這些行為在這個類的操作中以多個條件語句的形式出現(xiàn)。將相關(guān)的條件分支移入它們各自的Strategy類中以代替這些條件語句。類圖:9. IteratorPattern迭代器模式概述:給定一個語言,定義它的文法的一種表示,并定義一個解釋器,這個解釋器使用該表示
8、來解釋語言中的句子。適用性:1. 訪問一個聚合對象的內(nèi)容而無需暴露它的內(nèi)部表示。2. 支持對聚合對象的多種遍歷。3. 為遍歷不同的聚合結(jié)構(gòu)提供一個統(tǒng)一的接口(即,支持多態(tài)迭代)。類圖:10.ObserverPattern觀察者模式概述:定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并被自動更新。適用性:1. 當(dāng)一個抽象模型有兩個方面,其中一個方面依賴于另一方面。將這二者封裝在獨立的對象中以使它們可以各自獨立地改變和復(fù)用。2. 當(dāng)對一個對象的改變需要同時改變其它對象,而不知道具體有多少對象有待改變。3. 當(dāng)一個對象必須通知其它對象,而它又不能假定其它對象是誰。類圖:補充:裝飾模式概述:動態(tài)地給一個對象添加一些額外的職責(zé)。就增加功能來說,Decorator模式相比生成子類更為靈活。適用性:1. 在不影響其他對象的情況下,以動態(tài)、透明的方式給單個對象添加職責(zé)。2. 處理那些可以撤消的職責(zé)。3. 當(dāng)不能采用生成子類的方法進(jìn)行擴充時。類圖:模板方法概述:定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。TemplateMethod使得子類可以不改變一個算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟。適用性:1.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年街舞教練專屬聘用協(xié)議3篇
- 八年級美術(shù)教學(xué)工作計劃
- 2024年網(wǎng)絡(luò)營銷服務(wù)外包合同
- 2024年標(biāo)準(zhǔn)版勞動者服務(wù)協(xié)議范本版B版
- 身體原因辭職報告【10篇】
- 舉辦畢業(yè)晚會的策劃設(shè)計方案6篇
- 2024年綠植銷售與安裝服務(wù)協(xié)議
- 動感課堂2016年春九年級化學(xué)下冊 第八單元 金屬和金屬材料 課題2 金屬的化學(xué)性質(zhì)教學(xué)實錄 (新版)新人教版
- 高中語文教師個人教學(xué)總結(jié)報告
- 2024年股權(quán)預(yù)先轉(zhuǎn)讓協(xié)議范本版
- 2024年三支一扶考試基本能力測驗試題及解答參考
- 天津市2023-2024學(xué)年高一上學(xué)期語文期末考試試卷(含答案)3
- 旅游產(chǎn)品及開發(fā)
- 2025屆東莞東華高級中學(xué)高二物理第一學(xué)期期末檢測試題含解析
- 剪刀式登高車安全技術(shù)交底
- 工廠銑工安全培訓(xùn)課件
- 餐飲組織架構(gòu)圖(完整版)-20210618215128
- 科研管理年終總結(jié)匯報
- 部編版語文小學(xué)五年級上學(xué)期期末試卷與參考答案(2024-2025學(xué)年)
- 2024重慶城建控股(集團(tuán))限責(zé)任公司招聘高頻難、易錯點500題模擬試題附帶答案詳解
- 河南省鄭州市2023-2024學(xué)年高二上學(xué)期期末考試政治試題 附答案
評論
0/150
提交評論