版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第 1 章,設(shè)計(jì)模式概述,- 2 -,本章目標(biāo),了解設(shè)計(jì)模式的概念 了解設(shè)計(jì)模式的歷史 理解設(shè)計(jì)模式的要素 掌握設(shè)計(jì)模式的分類,- 3 -,設(shè)計(jì)模式的概念,設(shè)計(jì)模式(Design Pattern)是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過(guò)分類編目的優(yōu)秀代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié) 使用設(shè)計(jì)模式是為了重用代碼、使代碼更易理解并保證代碼的可靠性,面向接口編程,而不是面向?qū)崿F(xiàn) 降低耦合,增強(qiáng)靈活性,- 4 -,設(shè)計(jì)模式的歷史,起源于建筑設(shè)計(jì) Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides Design Patterns: Elements of Reu
2、sable Object-Oriented Software(設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)),- 5 -,設(shè)計(jì)模式的要素和分類,模式名稱 問(wèn)題 環(huán)境或初始環(huán)境 解決方案 效果,舉例 末態(tài)環(huán)境 推理 其他有關(guān)模式 已知應(yīng)用,創(chuàng)建型 結(jié)構(gòu)型 行為型,設(shè)計(jì)模式的要素,設(shè)計(jì)模式的分類,- 6 -,創(chuàng)建型設(shè)計(jì)模式,創(chuàng)建型模式是用來(lái)創(chuàng)建對(duì)象的模式,抽象了實(shí)例化的過(guò)程,幫助一個(gè)系統(tǒng)獨(dú)立于其關(guān)聯(lián)對(duì)象的創(chuàng)建、組合和表示方式 創(chuàng)建型模式具有兩個(gè)功能 將系統(tǒng)所使用的具體類的信息封裝起來(lái) 隱藏類的實(shí)例是如何被創(chuàng)建和組織的。外界對(duì)于這些對(duì)象只知道它們共同的接口,而不清楚其具體的實(shí)現(xiàn)細(xì)節(jié),Room room = n
3、ew ModernRoom(); / 現(xiàn)代風(fēng)格房屋,Room room = new ClassicalRoom(); / 古典風(fēng)格房屋,RoomFactory factory = new ModernRoomFactory(); Room modernRoom = factory.create();,RoomFactory factory = new ClassicalRoomFactory(); Room classicalRoom = factory.create();,單例模式(Singleton Pattern) 工廠方法模式(Factory Pattern) 抽象工廠模式(Abstr
4、act Factory) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern),- 7 -,結(jié)構(gòu)型設(shè)計(jì)模式,代理模式(Proxy) 為其他對(duì)象提供一種代理以控制對(duì)該對(duì)象的訪問(wèn) 裝飾模式(Decorator) 動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé) 適配器模式(Adapter) 將一個(gè)類的接口變換成客戶端所期待的另一接口 組合模式(Composite) 將對(duì)象組合成樹(shù)形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu) 橋梁模式(Bridge) 將抽象和實(shí)現(xiàn)解耦,使得兩者可以獨(dú)立的變化 外觀模式(Facade) 要求一個(gè)子系統(tǒng)的外部與其內(nèi)部的通信必須通過(guò)一個(gè)統(tǒng)一的對(duì)象進(jìn)行 享
5、元模式(Flyweight) 池技術(shù)的重要實(shí)現(xiàn)方式,使用共享對(duì)象可有效地支持大量的細(xì)粒度的對(duì)象,- 8 -,行為型設(shè)計(jì)模式 - 1,模板方法模式(Template Method) 定義一個(gè)操作中的算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變一個(gè)算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟 命令模式(Command) 將一個(gè)請(qǐng)求封裝成一個(gè)對(duì)象,從而使用不同的請(qǐng)求把客戶端參數(shù)化,對(duì)請(qǐng)求排隊(duì)或者記錄請(qǐng)求日志,可以提供命令的撤銷和恢復(fù)功能 責(zé)任鏈模式(Chain of Responsibility) 使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,從而避免了請(qǐng)求的發(fā)送者和接受者之間的耦合關(guān)系。將這些對(duì)象連成一條鏈
6、,并沿著這條鏈傳遞該請(qǐng)求,直到有對(duì)象處理它為止 策略模式(Strategy) 定義一組算法,將每個(gè)算法都封裝起來(lái),并且使它們之間可以互換 迭代器模式(Iterator) 訪問(wèn)一個(gè)容器對(duì)象中的各個(gè)元素,而又不需要暴露該對(duì)象的內(nèi)部細(xì)節(jié),- 9 -,行為型設(shè)計(jì)模式 - 2,中介者模式(Mediator) 用一個(gè)中介對(duì)象封裝一系列的對(duì)象交互,中介者使各對(duì)象不需要顯示的相互作用,從而使其耦合松散,而且可以獨(dú)立的改變他們之間的交互 觀察者模式(Observer) 定義對(duì)象間的一種一對(duì)多的依賴關(guān)系,使得每當(dāng)一個(gè)對(duì)象改變狀態(tài),則所有依賴于它的對(duì)象都會(huì)得到通知并被自動(dòng)更新責(zé)任鏈 備忘錄模式(Memento) 在
7、不破壞封裝性的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài),并在該對(duì)象之外保存這個(gè)狀態(tài) 訪問(wèn)者模式(Visitor) 封裝一些作用于某種數(shù)據(jù)結(jié)構(gòu)中的各元素的操作,它可以在不改變數(shù)據(jù)結(jié)構(gòu)的前提下定義作用于這些元素的新的操作 狀態(tài)模式(State) 當(dāng)一個(gè)對(duì)象內(nèi)在狀態(tài)改變時(shí)允許其改變行為 解釋器模式(Interpreter) 給定一門語(yǔ)言,定義它的文法的一種表示,并定義一個(gè)解釋器,該解釋器使用該文法表示來(lái)解釋語(yǔ)言中的句子,- 10 -,小結(jié),設(shè)計(jì)一個(gè)模式的過(guò)程就是將問(wèn)題抽象化,忽略不重要的細(xì)節(jié)后發(fā)現(xiàn)問(wèn)題的本質(zhì),并找到普遍適用的解決方案的過(guò)程 GoF的設(shè)計(jì)模式提供了一套可復(fù)用的面向?qū)ο蠹夹g(shù) 設(shè)計(jì)模式起源于建筑設(shè)計(jì)學(xué) 設(shè)計(jì)模式的基本要素是:名字、問(wèn)題、初始環(huán)境、舉例、末態(tài)環(huán)境、推理、其他有關(guān)模式、已知應(yīng)用 設(shè)計(jì)模式主要有23種,可以將這些模式劃分為三大類型:創(chuàng)建型、結(jié)構(gòu)型和行為型 創(chuàng)建型包括:?jiǎn)卫J?、工廠方法模式、抽象工廠模式、建造者模式和原型模式 結(jié)構(gòu)型包括:
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年奶牛采購(gòu)協(xié)議
- 滬教版三年級(jí)下冊(cè)數(shù)學(xué)第二單元 用兩位數(shù)乘除 測(cè)試卷(黃金題型)
- 2024年度「惠州廣告發(fā)布」合同標(biāo)的:廣告發(fā)布及宣傳效果
- 2024醫(yī)療機(jī)構(gòu)醫(yī)療設(shè)備采購(gòu)及維護(hù)合同
- 2024年建筑項(xiàng)目代理銷售合同
- 2024年建筑工程材料采購(gòu)條款樣本
- 3D打印技術(shù)在蜂窩狀材料生產(chǎn)中的應(yīng)用
- 2024年度軟件許可及服務(wù)合同
- 2024年少兒輔導(dǎo)班合并合同
- 2024年度國(guó)際產(chǎn)學(xué)研合作研發(fā)合同
- 期末模擬練習(xí)(試題)(含答案)2024-2025學(xué)年二年級(jí)上冊(cè)數(shù)學(xué)蘇教版
- 2024年房產(chǎn)中介傭金提成協(xié)議書(shū)范本
- 某港口碼頭工程施工組織設(shè)計(jì)
- 職業(yè)技術(shù)學(xué)校老年保健與管理專業(yè)(三年制)人才培養(yǎng)方案
- 2024年秋季人教版新教材七年級(jí)上冊(cè)語(yǔ)文全冊(cè)教案(名師教學(xué)設(shè)計(jì)簡(jiǎn)案)
- 有子女民政局常用協(xié)議離婚書(shū)格式2024年
- 中國(guó)介入醫(yī)學(xué)白皮書(shū)(2021 版)
- 2024中華人民共和國(guó)農(nóng)村集體經(jīng)濟(jì)組織法詳細(xì)解讀課件
- 代運(yùn)營(yíng)合作服務(wù)協(xié)議
- 婚內(nèi)財(cái)產(chǎn)協(xié)議書(shū)(2024版)
- 有限空間作業(yè)應(yīng)急管理制度
評(píng)論
0/150
提交評(píng)論