課程簡(jiǎn)介
作為為一門高級(jí)課程,若內(nèi)容缺乏實(shí)務(wù)便易流于抽象與空泛。 本課程除了深入剖析各種典型的設(shè)計(jì)模式之原理與結(jié)構(gòu)外, 同時(shí)會(huì)抽取大量知名程序庫(kù)中的設(shè)計(jì)模式,利用其源碼輔助并加強(qiáng)原理講解。并且結(jié)合講師大量實(shí)際項(xiàng)目案例進(jìn)行分析. 這種方式對(duì)于設(shè)計(jì)模式的學(xué)習(xí)有著極大效果。 與其它的仍然沿用傳統(tǒng)模式目錄方式逐一講述每一模式的意圖,結(jié)構(gòu),適應(yīng)性等的培訓(xùn)和圖書(shū)完全不同.
目標(biāo)收益
課程1/3的時(shí)間介紹設(shè)計(jì)模式思想和原理,1/3時(shí)間案例,并且要求學(xué)員組合成小組進(jìn)行現(xiàn)場(chǎng)設(shè)計(jì). 最后1/3時(shí)間再介紹該案例的設(shè)計(jì)過(guò)程,講師帶領(lǐng)大家一起對(duì)設(shè)計(jì)結(jié)果進(jìn)行分析,指出不”和諧”的地方,通過(guò)逐步運(yùn)用模式,改善設(shè)計(jì)。
培訓(xùn)對(duì)象
該課程適合各類 IT/軟件企業(yè)和研發(fā)機(jī)構(gòu)的軟件架構(gòu)師、軟件設(shè)計(jì)師、程序員。特別能夠帶著設(shè)計(jì)模式實(shí)踐時(shí)的困惑和問(wèn)題,效果最佳. 到時(shí)可以與講師PK討論,這樣對(duì)你幫助會(huì)更大,收獲也會(huì)更多.本課程不是設(shè)計(jì)模式入門級(jí)別課程, 不會(huì)目錄式介紹每一模式的詳細(xì)細(xì)節(jié), 因此需要學(xué)員課前做好相關(guān)準(zhǔn)備,最好已經(jīng)具備模式概念和常見(jiàn)模式的基本知識(shí)。最好課前可以簡(jiǎn)單預(yù)習(xí)。
課程大綱
第一篇: 設(shè)計(jì)模式-設(shè)計(jì)原理與面向?qū)ο笤O(shè)計(jì)思維 第1單元 為什么需要設(shè)計(jì)模式 |
內(nèi)容一:軟件設(shè)計(jì)模式---模式到底是什么?價(jià)值在哪里? 1.什么是模式 2.為什么需要設(shè)計(jì)模式? 難道就為了面試嗎? 3.設(shè)計(jì)模式能夠給我們帶來(lái)什么? 4.設(shè)計(jì)模式學(xué)習(xí)面臨的困難和解決思路 5.從了解模式到正確應(yīng)用模式 1.練習(xí)---某電信業(yè)務(wù)系統(tǒng),在使用模式前解決方案 和 使用模式后的對(duì)比 內(nèi)容二:軟件設(shè)計(jì)模式本質(zhì)—你真的知道模式背后的原理嗎? 1.發(fā)現(xiàn)變化進(jìn)行封裝變化 2.把變化與不變必須分離 3.針對(duì)接口的編程,而不是針對(duì)實(shí)現(xiàn) 4.組合優(yōu)于繼承 1.練習(xí)—某電信認(rèn)證項(xiàng)目設(shè)計(jì)分析,分析模式背后的本質(zhì) 內(nèi)容三:什么是好的設(shè)計(jì)-----難道使用設(shè)計(jì)模式就是好的設(shè)計(jì)嗎? 1.什么是好的設(shè)計(jì)? 2.難道不使用設(shè)計(jì)模式就是壞的設(shè)計(jì)嗎? 3.為什么需求變化總是使你痛苦? 和你的設(shè)計(jì)有關(guān)系嗎? 4.好的系統(tǒng)設(shè)計(jì)應(yīng)該有如下的性質(zhì):可擴(kuò)展性、靈活性、可插入性。 5.設(shè)計(jì)模式可以使你的設(shè)計(jì)更靈活,更易復(fù)用,更具可擴(kuò)展性 練習(xí)—某電信項(xiàng)目4種設(shè)計(jì)方案的對(duì)比, 那種更合適?多種方案的對(duì)比 |
第2單元 面向?qū)ο笤O(shè)計(jì)思維與原理 |
內(nèi)容一:面向?qū)ο笏季S是模式基礎(chǔ) 1.面向?qū)ο蠓治雠c設(shè)計(jì)的本質(zhì) 2.面向?qū)ο笤O(shè)計(jì)思維與面向過(guò)程設(shè)計(jì)思維—職責(zé)驅(qū)動(dòng)設(shè)計(jì) 3.抽象本質(zhì) 4.封裝本質(zhì) 5.繼承本質(zhì) 6.多態(tài)本質(zhì) 7.面向?qū)ο蟪R?jiàn)的錯(cuò)誤認(rèn)識(shí)—思考OO帶來(lái)的價(jià)值 8.為什么學(xué)習(xí)設(shè)計(jì)模式需要面向?qū)ο笏季S 9.從面向?qū)ο蟮侥J降皆俚秸嬲拿嫦驅(qū)ο?br/>10.練習(xí)—某ERP項(xiàng)目, 使用面向?qū)ο笤O(shè)計(jì)和過(guò)程化設(shè)計(jì) PK,,難道面向?qū)ο缶鸵欢ㄊ亲顑?yōu)的? 你真正理解面向?qū)ο髥? 面向?qū)ο蟮降渍嬲心男┖锰? 不要人云亦云 ! 內(nèi)容二:面向?qū)ο笤O(shè)計(jì)原則(principles) 1.依賴倒置原則(DIP) 2.開(kāi)放封閉原則(OCP) 3.單一職責(zé)原則(SRP) 4.Liskov 替換原則(LSP) 5.接口隔離原則(ISP) 6.練習(xí)—每組原則,分別通過(guò)案例進(jìn)行分析,為什么需要使用原則進(jìn)行考慮 |
第二篇: 設(shè)計(jì)模式精講------創(chuàng)建型 第3單元 創(chuàng)建型模式 |
內(nèi)容一:創(chuàng)建型模式(principles) 1.簡(jiǎn)單創(chuàng)建型工廠 2. Factory Method(工廠方法) 3. Abstract Factory(抽象工廠) 4. Builder(生成器) 5. Prototype(原型) 6. Singleton(單件) 7.創(chuàng)建型模式的討論 |
第4單元 創(chuàng)建型模式精講 |
內(nèi)容一:簡(jiǎn)單工廠模式 1.簡(jiǎn)單工廠模式概述 2.簡(jiǎn)單工廠模式結(jié)構(gòu)與實(shí)現(xiàn) 3.簡(jiǎn)單工廠模式結(jié)構(gòu) 4.簡(jiǎn)單工廠模式實(shí)現(xiàn) 5.簡(jiǎn)單工廠模式應(yīng)用實(shí)例 6.關(guān)于創(chuàng)建對(duì)象與使用對(duì)象 7.簡(jiǎn)單工廠模式的簡(jiǎn)化 8.簡(jiǎn)單工廠模式優(yōu)/缺點(diǎn)與適用環(huán)境 9.簡(jiǎn)單工廠模式優(yōu)點(diǎn) 內(nèi)容二:工廠方法模式 1.工廠方法模式概述 2.工廠方法模式結(jié)構(gòu)與實(shí)現(xiàn) 3.工廠方法模式結(jié)構(gòu) 4.工廠方法模式實(shí)現(xiàn) 5.工廠方法模式應(yīng)用實(shí)例 6.工廠方法模式優(yōu)/缺點(diǎn)與適用環(huán)境 7.工廠方法模式優(yōu)點(diǎn) 內(nèi)容三:抽象工廠模式 1.產(chǎn)品等級(jí)結(jié)構(gòu)與產(chǎn)品族 2. 抽象工廠模式概述 3. 抽象工廠模式結(jié)構(gòu)與實(shí)現(xiàn) 4. 抽象工廠模式結(jié)構(gòu) 5. 抽象工廠模式實(shí)現(xiàn) 6. 抽象工廠模式應(yīng)用實(shí)例 內(nèi)容四:?jiǎn)卫J侥J?br/>1.單例模式概述 2. 單例模式結(jié)構(gòu)與實(shí)現(xiàn) 3. 單例模式結(jié)構(gòu) 4. 單例模式實(shí)現(xiàn) 5. 單例模式應(yīng)用實(shí)例 6. 餓漢式單例與懶漢式單例 7. 單例模式優(yōu)/缺點(diǎn)與適用環(huán)境 8. 單例模式優(yōu)點(diǎn) 內(nèi)容五:其他創(chuàng)建型模式 1.Builder(生成器)模式概述 2.Builder(生成器)模式結(jié)構(gòu)與實(shí)現(xiàn) 3.Prototype(原型)模式概述 4.Prototype(原型)式結(jié)構(gòu)與實(shí)現(xiàn) 內(nèi)容六:創(chuàng)建型模式的應(yīng)用案例分析 1.創(chuàng)建型的應(yīng)用案例分析 |
第三篇: 設(shè)計(jì)模式精講------結(jié)構(gòu)性型 第5單元 結(jié)構(gòu)型模式 |
內(nèi)容一:結(jié)構(gòu)型模式(principles) 1.Adapter(適配器)—類對(duì)象結(jié)構(gòu)型模式 2.Bridge(橋接)—對(duì)象結(jié)構(gòu)型模式 3.Composite(組成)—對(duì)象結(jié)構(gòu)型模式 4.Decorator(裝飾)—對(duì)象結(jié)構(gòu)型模式 5.FACADE(外觀)—對(duì)象結(jié)構(gòu)型模式 6.Flyweight(享元)—對(duì)象結(jié)構(gòu)型模式 7.Proxy(代理)—對(duì)象結(jié)構(gòu)型模式 8.結(jié)構(gòu)型模式的討論 9.Adapter與Bridge對(duì)比與分析 10.Composite、Decorator與Proxy 對(duì)比與分析 |
第6單元 結(jié)構(gòu)型模式精講 |
內(nèi)容一:適配器模式 1.適配器模式概述 2.對(duì)象適配器和類適配器 3. 適配器模式結(jié)構(gòu)與實(shí)現(xiàn) 4. 適配器模式應(yīng)用實(shí)例 5. 缺省適配器模式 6. 雙向適配器 7. 適配器模式優(yōu)/缺點(diǎn)與適用環(huán)境 內(nèi)容二:組合模式 1.組合模式概述 2.組合模式結(jié)構(gòu)與實(shí)現(xiàn) 3.組合模式應(yīng)用實(shí)例 4.透明組合模式與安全組合模式 5.組合模式優(yōu)/缺點(diǎn)與適用環(huán)境 6.組合模式優(yōu)點(diǎn) 7.組合模式缺點(diǎn) 8.組合模式適用環(huán)境 內(nèi)容三:裝飾器模式 1.裝飾模式概述 2.裝飾模式結(jié)構(gòu)與實(shí)現(xiàn) 3.裝飾模式應(yīng)用實(shí)例 4.透明裝飾模式與半透明裝飾模式 5.裝飾模式優(yōu)/缺點(diǎn)與適用環(huán)境 內(nèi)容四:Facde外觀模式 1.外觀模式概述 2.外觀模式結(jié)構(gòu)與實(shí)現(xiàn) 3.外觀模式應(yīng)用實(shí)例 4.抽象外觀類 5.外觀模式優(yōu)/缺點(diǎn)與適用環(huán)境 6.外觀模式適用環(huán)境 內(nèi)容五:結(jié)構(gòu)性模式應(yīng)用案例 1.結(jié)構(gòu)型概述應(yīng)用案例 |
第四篇: 設(shè)計(jì)模式精講------行為型 第7單元 行為型型模式 |
內(nèi)容一:行為型模式(principles) 1.CHAIN OF RESPONSIBIL ITY(職責(zé)鏈) —對(duì)象行為型模式 2.COMMAND(命令)—對(duì)象行為型模式 3. INTERPRETER(解釋器)—類行為型模式 4. ITERATOR(迭代器)—對(duì)象行為型模式 5. MEDIATOR(中介者)—對(duì)象行為型模式 6.MEMENTO(備忘錄)—對(duì)象行為型模式 7.OBSERVER(觀察者)—對(duì)象行為型模式 8.STATE(狀態(tài))—對(duì)象行為型模式 9.STRATEGY(策略)—對(duì)象行為型模式 10.TEMPLATE METHOD(模板方法)—類行為型模式 11. VISITOR(訪問(wèn)者)—對(duì)象行為型 模式 12. 行為模式的討論 |
第8單元 行為型模式精講 |
內(nèi)容一:代理模式 1.代理模式概述 2.代理模式結(jié)構(gòu)與實(shí)現(xiàn) 3.代理模式應(yīng)用實(shí)例 4. 遠(yuǎn)程代理 5. 虛擬代理 6. Java動(dòng)態(tài)代理實(shí)現(xiàn) 7. 代理模式優(yōu)/缺點(diǎn)與適用環(huán)境 內(nèi)容二:職責(zé)鏈模式 1.職責(zé)鏈模式概述 2.職責(zé)鏈模式結(jié)構(gòu)與實(shí)現(xiàn) 3.職責(zé)鏈模式應(yīng)用實(shí)例 4.純與不純的職責(zé)鏈模式 5.職責(zé)鏈模式優(yōu)/缺點(diǎn)與適用環(huán)境 內(nèi)容三:命令模式 1.命令模式概述 2.命令模式結(jié)構(gòu)與實(shí)現(xiàn) 3.命令模式結(jié)構(gòu) 4.命令模式實(shí)現(xiàn) 5.命令模式應(yīng)用實(shí)例 6.實(shí)現(xiàn)命令隊(duì)列 7.記錄請(qǐng)求日志 8.實(shí)現(xiàn)撤銷操作 9.宏命令 10.命令模式優(yōu)/缺點(diǎn)與適用環(huán)境 內(nèi)容四:觀察者模式 1.觀察者模式概述 2.觀察者模式結(jié)構(gòu)與實(shí)現(xiàn) 3.觀察者模式應(yīng)用實(shí)例 4.JDK對(duì)觀察者模式的支持 5.觀察者模式與Java事件處理 6.觀察者模式與MVC 7.觀察者模式優(yōu)/缺點(diǎn)與適用環(huán)境 內(nèi)容五:狀態(tài)與策略模式 1.狀態(tài)模式概述 2.狀態(tài)模式結(jié)構(gòu)與實(shí)現(xiàn) 3.狀態(tài)模式應(yīng)用實(shí)例 4. 共享狀態(tài) 5. 使用環(huán)境類實(shí)現(xiàn)狀態(tài)轉(zhuǎn)換 6. 狀態(tài)模式優(yōu)/缺點(diǎn)與適用環(huán)境 7.策略模式概述 8.策略模式結(jié)構(gòu)與實(shí)現(xiàn) 9.策略模式應(yīng)用實(shí)例 10.策略模式優(yōu)/缺點(diǎn)與適用環(huán)境 內(nèi)容六:模板方法模式 1.模板方法模式概述 2.模板方法模式結(jié)構(gòu)與實(shí)現(xiàn) 3.模板方法模式應(yīng)用實(shí)例 4.鉤子方法的使用 5.模板方法模式優(yōu)/缺點(diǎn)與適用環(huán)境 |
第五篇: 設(shè)計(jì)模式對(duì)比 第9單元 設(shè)計(jì)模式對(duì)比 |
內(nèi)容一:模式大PK, 通過(guò)對(duì)比了解設(shè)計(jì)模式的細(xì)節(jié) 1.創(chuàng)建型模式討論 a)簡(jiǎn)單工場(chǎng) 工廠方法 抽象工場(chǎng) b)Abstract Factory,builder,Prototype 模式 c)單例模式 2.行為型模式 a)Adapter與Bridge b)Composite、Decorator與Proxy c)Fa?ade模式 與 Adapter模式 /Proxy模式 d)Composite 與Iterator模式 3.結(jié)構(gòu)型模式 a)封裝變化-Strategy/State/ Iterator模式 b)封裝結(jié)構(gòu)---Mediator模式與Facade模式 c)對(duì)象作為參數(shù)-- Visitor/Command/Mementor d)通信應(yīng)該被封裝還是被分布- Mediator和Observer e)對(duì)發(fā)送者和接收者解耦-Command模式與職責(zé)鏈模式 將實(shí)踐中常容易混淆或常常聯(lián)合使用的幾個(gè)模式放在一組討論,對(duì)比分析,講解思想。如何發(fā)現(xiàn)、應(yīng)用更多模式。通過(guò)對(duì)“相似或相關(guān)的設(shè)計(jì)模式”的對(duì)比分析,加深理解,是避免“模式誤用”的好方法。 |
第六篇: 設(shè)計(jì)模式應(yīng)用案例 第10單元 設(shè)計(jì)模式應(yīng)用案例 |
內(nèi)容一:用模式思考系統(tǒng)設(shè)計(jì) 1.基于模式的設(shè)計(jì)系統(tǒng) 2.用模式思考的過(guò)程 3.模式的應(yīng)用層次和組合應(yīng)用模式 4.基于模式的方法和步驟 內(nèi)容二:練習(xí)案例- Log子系統(tǒng)的設(shè)計(jì) 1.介紹項(xiàng)目需求情況,進(jìn)行設(shè)計(jì) 2.通過(guò)重構(gòu)逐步實(shí)現(xiàn)設(shè)計(jì)模式 3.Framework 設(shè)計(jì)思想—好萊塢原則 4.學(xué)習(xí)設(shè)計(jì)模式(Factory Method, Template Method, Composite, Chain of Responsibility ) |
第11單元 設(shè)計(jì)模式應(yīng)用策略 有時(shí)放棄模式更值得學(xué)習(xí) |
內(nèi)容一:重構(gòu)到模式- 1.設(shè)計(jì)壞味道概述 2.重構(gòu)思想 3.理解如何結(jié)合重構(gòu)和模式; 4.用模式導(dǎo)向的重構(gòu)(pattern-directed refactoring)改善既有代碼的設(shè)計(jì); 5.找出需要進(jìn)行模式導(dǎo)向重構(gòu)的代碼段; 6.了解為什么使用模式來(lái)改善既有的設(shè)計(jì)要優(yōu)于在新的設(shè)計(jì)早期使用模式。 7.一組壞味 (也就是問(wèn)題),表示需要進(jìn)行模式導(dǎo)向的重構(gòu); 8.實(shí)現(xiàn)同一模式的不同方式的示例; 9.什么時(shí)候應(yīng)該通過(guò)重構(gòu)實(shí)現(xiàn)模式、趨向模式以及去除模式給出建議。 10.常見(jiàn)設(shè)計(jì)模式的重構(gòu)演化的過(guò)程 7.練習(xí)—通過(guò)一個(gè)大型電信系統(tǒng)案例分析, 解決如何通過(guò)重構(gòu)引入設(shè)計(jì)模式 11. 內(nèi)容二:案例- 遺留系統(tǒng)如何使用設(shè)計(jì)模式 1.拒絕退化—“首先不要傷害” 2.關(guān)注點(diǎn)分離 3.. 通過(guò)案例分析,如何修改遺留代碼,而不破壞現(xiàn)有系統(tǒng)代碼結(jié)構(gòu),引入設(shè)計(jì)模式 8.練習(xí)—通過(guò)一個(gè)系統(tǒng)案例分析, 如何在維護(hù)遺留系統(tǒng)時(shí), 通過(guò)分離制作, 關(guān)注點(diǎn)分離, 實(shí)現(xiàn)對(duì)遺留系統(tǒng)不傷害,從而引入設(shè)計(jì)模式 內(nèi)容三:練習(xí)案例- 重構(gòu)到模式 |
第七篇: 重構(gòu)到設(shè)計(jì)模式 第12單元 重構(gòu)到模式應(yīng)用案例 通過(guò)重構(gòu)實(shí)現(xiàn)模式改善既有的設(shè)計(jì),往往優(yōu)于在新的設(shè)計(jì)早期使用模式。 |
內(nèi)容一:重構(gòu)到模式- 1. 設(shè)計(jì)壞味道概述 2. 重構(gòu)思想 3. 理解如何結(jié)合重構(gòu)和模式; 4. 用模式導(dǎo)向的重構(gòu)(pattern-directed refactoring)改善既有代碼的設(shè)計(jì); 5. 找出需要進(jìn)行模式導(dǎo)向重構(gòu)的代碼段; 6. 了解為什么使用模式來(lái)改善既有的設(shè)計(jì)要優(yōu)于在新的設(shè)計(jì)早期使用模式。 7. 一組壞味 (也就是問(wèn)題),表示需要進(jìn)行模式導(dǎo)向的重構(gòu); 8. 實(shí)現(xiàn)同一模式的不同方式的示例; 9. 什么時(shí)候應(yīng)該通過(guò)重構(gòu)實(shí)現(xiàn)模式、趨向模式以及去除模式給出建議。 10. 常見(jiàn)設(shè)計(jì)模式的重構(gòu)演化的過(guò)程 A案例分析—通過(guò)一個(gè)大型電信系統(tǒng)案例分析, 解決如何通過(guò)重構(gòu)引入設(shè)計(jì)模式 內(nèi)容二:案例- 遺留系統(tǒng)如何使用設(shè)計(jì)模式 1. 拒絕退化—“首先不要傷害” 2. 關(guān)注點(diǎn)分離 3. 通過(guò)案例分析,如何修改遺留代碼,而不破壞現(xiàn)有系統(tǒng)代碼結(jié)構(gòu),引入設(shè)計(jì)模式 A案例分析—通過(guò)一個(gè)系統(tǒng)案例分析, 如何在維護(hù)遺留系統(tǒng)時(shí), 通過(guò)分離制作, 關(guān)注點(diǎn)分離, 實(shí)現(xiàn)對(duì)遺留系統(tǒng)不傷害,從而引入設(shè)計(jì)模式 內(nèi)容三:案例- 某電信管理子系統(tǒng)的設(shè)計(jì) 1. 介紹項(xiàng)目需求情況,進(jìn)行設(shè)計(jì) 2. 通過(guò)重構(gòu)逐步實(shí)現(xiàn)設(shè)計(jì)模式 3. Framework 設(shè)計(jì)思想—好萊塢原則 4. 學(xué)習(xí)設(shè)計(jì)模式(Factory Method, Template Method, Composite, Chain of Responsibility ) (“雖然軟件的演化,利用重構(gòu)從而得到模式”是有效應(yīng)用設(shè)計(jì)模式的實(shí)踐準(zhǔn)則。本節(jié)以一些重構(gòu)技巧來(lái)展示如何通過(guò)演化的方式來(lái)步步達(dá)至設(shè)計(jì)模式,從而幫助學(xué)員更好地掌握如何在軟件設(shè)計(jì)中運(yùn)用設(shè)計(jì)模式,發(fā)現(xiàn)更多設(shè)計(jì)模式。) |
第13單元 設(shè)計(jì)模式應(yīng)用策略- 綜合應(yīng)用分析 |
內(nèi)容一:大型系統(tǒng)的設(shè)計(jì)案例分析, 介紹如何預(yù)先應(yīng)用模式,以及如何在第3版本重構(gòu)時(shí)導(dǎo)入模式, 已經(jīng)在后期維護(hù)時(shí)應(yīng)用模式 1.××某省移動(dòng)線路資源維護(hù)系統(tǒng)的背景介紹 2.系統(tǒng)需求分析 3.如何根據(jù)應(yīng)用系統(tǒng)特點(diǎn), 和變化與不變等原因,引入模式 4.根據(jù)應(yīng)用功能,導(dǎo)入設(shè)計(jì)模式 5.第1版本上線時(shí)的系統(tǒng)設(shè)計(jì)分析 6.第1版本,系統(tǒng)設(shè)計(jì)時(shí)遺留的問(wèn)題, 設(shè)計(jì)不足, 缺陷等分析 7.第2版本, 由于增加新功能導(dǎo)致的嚴(yán)重問(wèn)題分析 8.系統(tǒng)出現(xiàn)很多設(shè)計(jì)不足 9.第3版本, 由于增加新功能導(dǎo)致的嚴(yán)重問(wèn)題分析 10.系統(tǒng)開(kāi)始引入重構(gòu),系統(tǒng)的壞味道, 以及重構(gòu),分析在重構(gòu)是如何使用重構(gòu) 11.分析第4版本的系統(tǒng)設(shè)計(jì) 系統(tǒng)在后續(xù)維護(hù)過(guò)程之中的, 設(shè)計(jì)情況。 以及如何在維護(hù)時(shí)期進(jìn)行應(yīng)用模式 |
第一篇: 設(shè)計(jì)模式-設(shè)計(jì)原理與面向?qū)ο笤O(shè)計(jì)思維 第1單元 為什么需要設(shè)計(jì)模式 內(nèi)容一:軟件設(shè)計(jì)模式---模式到底是什么?價(jià)值在哪里? 1.什么是模式 2.為什么需要設(shè)計(jì)模式? 難道就為了面試嗎? 3.設(shè)計(jì)模式能夠給我們帶來(lái)什么? 4.設(shè)計(jì)模式學(xué)習(xí)面臨的困難和解決思路 5.從了解模式到正確應(yīng)用模式 1.練習(xí)---某電信業(yè)務(wù)系統(tǒng),在使用模式前解決方案 和 使用模式后的對(duì)比 內(nèi)容二:軟件設(shè)計(jì)模式本質(zhì)—你真的知道模式背后的原理嗎? 1.發(fā)現(xiàn)變化進(jìn)行封裝變化 2.把變化與不變必須分離 3.針對(duì)接口的編程,而不是針對(duì)實(shí)現(xiàn) 4.組合優(yōu)于繼承 1.練習(xí)—某電信認(rèn)證項(xiàng)目設(shè)計(jì)分析,分析模式背后的本質(zhì) 內(nèi)容三:什么是好的設(shè)計(jì)-----難道使用設(shè)計(jì)模式就是好的設(shè)計(jì)嗎? 1.什么是好的設(shè)計(jì)? 2.難道不使用設(shè)計(jì)模式就是壞的設(shè)計(jì)嗎? 3.為什么需求變化總是使你痛苦? 和你的設(shè)計(jì)有關(guān)系嗎? 4.好的系統(tǒng)設(shè)計(jì)應(yīng)該有如下的性質(zhì):可擴(kuò)展性、靈活性、可插入性。 5.設(shè)計(jì)模式可以使你的設(shè)計(jì)更靈活,更易復(fù)用,更具可擴(kuò)展性 練習(xí)—某電信項(xiàng)目4種設(shè)計(jì)方案的對(duì)比, 那種更合適?多種方案的對(duì)比 |
第2單元 面向?qū)ο笤O(shè)計(jì)思維與原理 內(nèi)容一:面向?qū)ο笏季S是模式基礎(chǔ) 1.面向?qū)ο蠓治雠c設(shè)計(jì)的本質(zhì) 2.面向?qū)ο笤O(shè)計(jì)思維與面向過(guò)程設(shè)計(jì)思維—職責(zé)驅(qū)動(dòng)設(shè)計(jì) 3.抽象本質(zhì) 4.封裝本質(zhì) 5.繼承本質(zhì) 6.多態(tài)本質(zhì) 7.面向?qū)ο蟪R?jiàn)的錯(cuò)誤認(rèn)識(shí)—思考OO帶來(lái)的價(jià)值 8.為什么學(xué)習(xí)設(shè)計(jì)模式需要面向?qū)ο笏季S 9.從面向?qū)ο蟮侥J降皆俚秸嬲拿嫦驅(qū)ο?br/>10.練習(xí)—某ERP項(xiàng)目, 使用面向?qū)ο笤O(shè)計(jì)和過(guò)程化設(shè)計(jì) PK,,難道面向?qū)ο缶鸵欢ㄊ亲顑?yōu)的? 你真正理解面向?qū)ο髥? 面向?qū)ο蟮降渍嬲心男┖锰? 不要人云亦云 ! 內(nèi)容二:面向?qū)ο笤O(shè)計(jì)原則(principles) 1.依賴倒置原則(DIP) 2.開(kāi)放封閉原則(OCP) 3.單一職責(zé)原則(SRP) 4.Liskov 替換原則(LSP) 5.接口隔離原則(ISP) 6.練習(xí)—每組原則,分別通過(guò)案例進(jìn)行分析,為什么需要使用原則進(jìn)行考慮 |
第二篇: 設(shè)計(jì)模式精講------創(chuàng)建型 第3單元 創(chuàng)建型模式 內(nèi)容一:創(chuàng)建型模式(principles) 1.簡(jiǎn)單創(chuàng)建型工廠 2. Factory Method(工廠方法) 3. Abstract Factory(抽象工廠) 4. Builder(生成器) 5. Prototype(原型) 6. Singleton(單件) 7.創(chuàng)建型模式的討論 |
第4單元 創(chuàng)建型模式精講 內(nèi)容一:簡(jiǎn)單工廠模式 1.簡(jiǎn)單工廠模式概述 2.簡(jiǎn)單工廠模式結(jié)構(gòu)與實(shí)現(xiàn) 3.簡(jiǎn)單工廠模式結(jié)構(gòu) 4.簡(jiǎn)單工廠模式實(shí)現(xiàn) 5.簡(jiǎn)單工廠模式應(yīng)用實(shí)例 6.關(guān)于創(chuàng)建對(duì)象與使用對(duì)象 7.簡(jiǎn)單工廠模式的簡(jiǎn)化 8.簡(jiǎn)單工廠模式優(yōu)/缺點(diǎn)與適用環(huán)境 9.簡(jiǎn)單工廠模式優(yōu)點(diǎn) 內(nèi)容二:工廠方法模式 1.工廠方法模式概述 2.工廠方法模式結(jié)構(gòu)與實(shí)現(xiàn) 3.工廠方法模式結(jié)構(gòu) 4.工廠方法模式實(shí)現(xiàn) 5.工廠方法模式應(yīng)用實(shí)例 6.工廠方法模式優(yōu)/缺點(diǎn)與適用環(huán)境 7.工廠方法模式優(yōu)點(diǎn) 內(nèi)容三:抽象工廠模式 1.產(chǎn)品等級(jí)結(jié)構(gòu)與產(chǎn)品族 2. 抽象工廠模式概述 3. 抽象工廠模式結(jié)構(gòu)與實(shí)現(xiàn) 4. 抽象工廠模式結(jié)構(gòu) 5. 抽象工廠模式實(shí)現(xiàn) 6. 抽象工廠模式應(yīng)用實(shí)例 內(nèi)容四:?jiǎn)卫J侥J?br/>1.單例模式概述 2. 單例模式結(jié)構(gòu)與實(shí)現(xiàn) 3. 單例模式結(jié)構(gòu) 4. 單例模式實(shí)現(xiàn) 5. 單例模式應(yīng)用實(shí)例 6. 餓漢式單例與懶漢式單例 7. 單例模式優(yōu)/缺點(diǎn)與適用環(huán)境 8. 單例模式優(yōu)點(diǎn) 內(nèi)容五:其他創(chuàng)建型模式 1.Builder(生成器)模式概述 2.Builder(生成器)模式結(jié)構(gòu)與實(shí)現(xiàn) 3.Prototype(原型)模式概述 4.Prototype(原型)式結(jié)構(gòu)與實(shí)現(xiàn) 內(nèi)容六:創(chuàng)建型模式的應(yīng)用案例分析 1.創(chuàng)建型的應(yīng)用案例分析 |
第三篇: 設(shè)計(jì)模式精講------結(jié)構(gòu)性型 第5單元 結(jié)構(gòu)型模式 內(nèi)容一:結(jié)構(gòu)型模式(principles) 1.Adapter(適配器)—類對(duì)象結(jié)構(gòu)型模式 2.Bridge(橋接)—對(duì)象結(jié)構(gòu)型模式 3.Composite(組成)—對(duì)象結(jié)構(gòu)型模式 4.Decorator(裝飾)—對(duì)象結(jié)構(gòu)型模式 5.FACADE(外觀)—對(duì)象結(jié)構(gòu)型模式 6.Flyweight(享元)—對(duì)象結(jié)構(gòu)型模式 7.Proxy(代理)—對(duì)象結(jié)構(gòu)型模式 8.結(jié)構(gòu)型模式的討論 9.Adapter與Bridge對(duì)比與分析 10.Composite、Decorator與Proxy 對(duì)比與分析 |
第6單元 結(jié)構(gòu)型模式精講 內(nèi)容一:適配器模式 1.適配器模式概述 2.對(duì)象適配器和類適配器 3. 適配器模式結(jié)構(gòu)與實(shí)現(xiàn) 4. 適配器模式應(yīng)用實(shí)例 5. 缺省適配器模式 6. 雙向適配器 7. 適配器模式優(yōu)/缺點(diǎn)與適用環(huán)境 內(nèi)容二:組合模式 1.組合模式概述 2.組合模式結(jié)構(gòu)與實(shí)現(xiàn) 3.組合模式應(yīng)用實(shí)例 4.透明組合模式與安全組合模式 5.組合模式優(yōu)/缺點(diǎn)與適用環(huán)境 6.組合模式優(yōu)點(diǎn) 7.組合模式缺點(diǎn) 8.組合模式適用環(huán)境 內(nèi)容三:裝飾器模式 1.裝飾模式概述 2.裝飾模式結(jié)構(gòu)與實(shí)現(xiàn) 3.裝飾模式應(yīng)用實(shí)例 4.透明裝飾模式與半透明裝飾模式 5.裝飾模式優(yōu)/缺點(diǎn)與適用環(huán)境 內(nèi)容四:Facde外觀模式 1.外觀模式概述 2.外觀模式結(jié)構(gòu)與實(shí)現(xiàn) 3.外觀模式應(yīng)用實(shí)例 4.抽象外觀類 5.外觀模式優(yōu)/缺點(diǎn)與適用環(huán)境 6.外觀模式適用環(huán)境 內(nèi)容五:結(jié)構(gòu)性模式應(yīng)用案例 1.結(jié)構(gòu)型概述應(yīng)用案例 |
第四篇: 設(shè)計(jì)模式精講------行為型 第7單元 行為型型模式 內(nèi)容一:行為型模式(principles) 1.CHAIN OF RESPONSIBIL ITY(職責(zé)鏈) —對(duì)象行為型模式 2.COMMAND(命令)—對(duì)象行為型模式 3. INTERPRETER(解釋器)—類行為型模式 4. ITERATOR(迭代器)—對(duì)象行為型模式 5. MEDIATOR(中介者)—對(duì)象行為型模式 6.MEMENTO(備忘錄)—對(duì)象行為型模式 7.OBSERVER(觀察者)—對(duì)象行為型模式 8.STATE(狀態(tài))—對(duì)象行為型模式 9.STRATEGY(策略)—對(duì)象行為型模式 10.TEMPLATE METHOD(模板方法)—類行為型模式 11. VISITOR(訪問(wèn)者)—對(duì)象行為型 模式 12. 行為模式的討論 |
第8單元 行為型模式精講 內(nèi)容一:代理模式 1.代理模式概述 2.代理模式結(jié)構(gòu)與實(shí)現(xiàn) 3.代理模式應(yīng)用實(shí)例 4. 遠(yuǎn)程代理 5. 虛擬代理 6. Java動(dòng)態(tài)代理實(shí)現(xiàn) 7. 代理模式優(yōu)/缺點(diǎn)與適用環(huán)境 內(nèi)容二:職責(zé)鏈模式 1.職責(zé)鏈模式概述 2.職責(zé)鏈模式結(jié)構(gòu)與實(shí)現(xiàn) 3.職責(zé)鏈模式應(yīng)用實(shí)例 4.純與不純的職責(zé)鏈模式 5.職責(zé)鏈模式優(yōu)/缺點(diǎn)與適用環(huán)境 內(nèi)容三:命令模式 1.命令模式概述 2.命令模式結(jié)構(gòu)與實(shí)現(xiàn) 3.命令模式結(jié)構(gòu) 4.命令模式實(shí)現(xiàn) 5.命令模式應(yīng)用實(shí)例 6.實(shí)現(xiàn)命令隊(duì)列 7.記錄請(qǐng)求日志 8.實(shí)現(xiàn)撤銷操作 9.宏命令 10.命令模式優(yōu)/缺點(diǎn)與適用環(huán)境 內(nèi)容四:觀察者模式 1.觀察者模式概述 2.觀察者模式結(jié)構(gòu)與實(shí)現(xiàn) 3.觀察者模式應(yīng)用實(shí)例 4.JDK對(duì)觀察者模式的支持 5.觀察者模式與Java事件處理 6.觀察者模式與MVC 7.觀察者模式優(yōu)/缺點(diǎn)與適用環(huán)境 內(nèi)容五:狀態(tài)與策略模式 1.狀態(tài)模式概述 2.狀態(tài)模式結(jié)構(gòu)與實(shí)現(xiàn) 3.狀態(tài)模式應(yīng)用實(shí)例 4. 共享狀態(tài) 5. 使用環(huán)境類實(shí)現(xiàn)狀態(tài)轉(zhuǎn)換 6. 狀態(tài)模式優(yōu)/缺點(diǎn)與適用環(huán)境 7.策略模式概述 8.策略模式結(jié)構(gòu)與實(shí)現(xiàn) 9.策略模式應(yīng)用實(shí)例 10.策略模式優(yōu)/缺點(diǎn)與適用環(huán)境 內(nèi)容六:模板方法模式 1.模板方法模式概述 2.模板方法模式結(jié)構(gòu)與實(shí)現(xiàn) 3.模板方法模式應(yīng)用實(shí)例 4.鉤子方法的使用 5.模板方法模式優(yōu)/缺點(diǎn)與適用環(huán)境 |
第五篇: 設(shè)計(jì)模式對(duì)比 第9單元 設(shè)計(jì)模式對(duì)比 內(nèi)容一:模式大PK, 通過(guò)對(duì)比了解設(shè)計(jì)模式的細(xì)節(jié) 1.創(chuàng)建型模式討論 a)簡(jiǎn)單工場(chǎng) 工廠方法 抽象工場(chǎng) b)Abstract Factory,builder,Prototype 模式 c)單例模式 2.行為型模式 a)Adapter與Bridge b)Composite、Decorator與Proxy c)Fa?ade模式 與 Adapter模式 /Proxy模式 d)Composite 與Iterator模式 3.結(jié)構(gòu)型模式 a)封裝變化-Strategy/State/ Iterator模式 b)封裝結(jié)構(gòu)---Mediator模式與Facade模式 c)對(duì)象作為參數(shù)-- Visitor/Command/Mementor d)通信應(yīng)該被封裝還是被分布- Mediator和Observer e)對(duì)發(fā)送者和接收者解耦-Command模式與職責(zé)鏈模式 將實(shí)踐中常容易混淆或常常聯(lián)合使用的幾個(gè)模式放在一組討論,對(duì)比分析,講解思想。如何發(fā)現(xiàn)、應(yīng)用更多模式。通過(guò)對(duì)“相似或相關(guān)的設(shè)計(jì)模式”的對(duì)比分析,加深理解,是避免“模式誤用”的好方法。 |
第六篇: 設(shè)計(jì)模式應(yīng)用案例 第10單元 設(shè)計(jì)模式應(yīng)用案例 內(nèi)容一:用模式思考系統(tǒng)設(shè)計(jì) 1.基于模式的設(shè)計(jì)系統(tǒng) 2.用模式思考的過(guò)程 3.模式的應(yīng)用層次和組合應(yīng)用模式 4.基于模式的方法和步驟 內(nèi)容二:練習(xí)案例- Log子系統(tǒng)的設(shè)計(jì) 1.介紹項(xiàng)目需求情況,進(jìn)行設(shè)計(jì) 2.通過(guò)重構(gòu)逐步實(shí)現(xiàn)設(shè)計(jì)模式 3.Framework 設(shè)計(jì)思想—好萊塢原則 4.學(xué)習(xí)設(shè)計(jì)模式(Factory Method, Template Method, Composite, Chain of Responsibility ) |
第11單元 設(shè)計(jì)模式應(yīng)用策略 有時(shí)放棄模式更值得學(xué)習(xí) 內(nèi)容一:重構(gòu)到模式- 1.設(shè)計(jì)壞味道概述 2.重構(gòu)思想 3.理解如何結(jié)合重構(gòu)和模式; 4.用模式導(dǎo)向的重構(gòu)(pattern-directed refactoring)改善既有代碼的設(shè)計(jì); 5.找出需要進(jìn)行模式導(dǎo)向重構(gòu)的代碼段; 6.了解為什么使用模式來(lái)改善既有的設(shè)計(jì)要優(yōu)于在新的設(shè)計(jì)早期使用模式。 7.一組壞味 (也就是問(wèn)題),表示需要進(jìn)行模式導(dǎo)向的重構(gòu); 8.實(shí)現(xiàn)同一模式的不同方式的示例; 9.什么時(shí)候應(yīng)該通過(guò)重構(gòu)實(shí)現(xiàn)模式、趨向模式以及去除模式給出建議。 10.常見(jiàn)設(shè)計(jì)模式的重構(gòu)演化的過(guò)程 7.練習(xí)—通過(guò)一個(gè)大型電信系統(tǒng)案例分析, 解決如何通過(guò)重構(gòu)引入設(shè)計(jì)模式 11. 內(nèi)容二:案例- 遺留系統(tǒng)如何使用設(shè)計(jì)模式 1.拒絕退化—“首先不要傷害” 2.關(guān)注點(diǎn)分離 3.. 通過(guò)案例分析,如何修改遺留代碼,而不破壞現(xiàn)有系統(tǒng)代碼結(jié)構(gòu),引入設(shè)計(jì)模式 8.練習(xí)—通過(guò)一個(gè)系統(tǒng)案例分析, 如何在維護(hù)遺留系統(tǒng)時(shí), 通過(guò)分離制作, 關(guān)注點(diǎn)分離, 實(shí)現(xiàn)對(duì)遺留系統(tǒng)不傷害,從而引入設(shè)計(jì)模式 內(nèi)容三:練習(xí)案例- 重構(gòu)到模式 |
第七篇: 重構(gòu)到設(shè)計(jì)模式 第12單元 重構(gòu)到模式應(yīng)用案例 通過(guò)重構(gòu)實(shí)現(xiàn)模式改善既有的設(shè)計(jì),往往優(yōu)于在新的設(shè)計(jì)早期使用模式。 內(nèi)容一:重構(gòu)到模式- 1. 設(shè)計(jì)壞味道概述 2. 重構(gòu)思想 3. 理解如何結(jié)合重構(gòu)和模式; 4. 用模式導(dǎo)向的重構(gòu)(pattern-directed refactoring)改善既有代碼的設(shè)計(jì); 5. 找出需要進(jìn)行模式導(dǎo)向重構(gòu)的代碼段; 6. 了解為什么使用模式來(lái)改善既有的設(shè)計(jì)要優(yōu)于在新的設(shè)計(jì)早期使用模式。 7. 一組壞味 (也就是問(wèn)題),表示需要進(jìn)行模式導(dǎo)向的重構(gòu); 8. 實(shí)現(xiàn)同一模式的不同方式的示例; 9. 什么時(shí)候應(yīng)該通過(guò)重構(gòu)實(shí)現(xiàn)模式、趨向模式以及去除模式給出建議。 10. 常見(jiàn)設(shè)計(jì)模式的重構(gòu)演化的過(guò)程 A案例分析—通過(guò)一個(gè)大型電信系統(tǒng)案例分析, 解決如何通過(guò)重構(gòu)引入設(shè)計(jì)模式 內(nèi)容二:案例- 遺留系統(tǒng)如何使用設(shè)計(jì)模式 1. 拒絕退化—“首先不要傷害” 2. 關(guān)注點(diǎn)分離 3. 通過(guò)案例分析,如何修改遺留代碼,而不破壞現(xiàn)有系統(tǒng)代碼結(jié)構(gòu),引入設(shè)計(jì)模式 A案例分析—通過(guò)一個(gè)系統(tǒng)案例分析, 如何在維護(hù)遺留系統(tǒng)時(shí), 通過(guò)分離制作, 關(guān)注點(diǎn)分離, 實(shí)現(xiàn)對(duì)遺留系統(tǒng)不傷害,從而引入設(shè)計(jì)模式 內(nèi)容三:案例- 某電信管理子系統(tǒng)的設(shè)計(jì) 1. 介紹項(xiàng)目需求情況,進(jìn)行設(shè)計(jì) 2. 通過(guò)重構(gòu)逐步實(shí)現(xiàn)設(shè)計(jì)模式 3. Framework 設(shè)計(jì)思想—好萊塢原則 4. 學(xué)習(xí)設(shè)計(jì)模式(Factory Method, Template Method, Composite, Chain of Responsibility ) (“雖然軟件的演化,利用重構(gòu)從而得到模式”是有效應(yīng)用設(shè)計(jì)模式的實(shí)踐準(zhǔn)則。本節(jié)以一些重構(gòu)技巧來(lái)展示如何通過(guò)演化的方式來(lái)步步達(dá)至設(shè)計(jì)模式,從而幫助學(xué)員更好地掌握如何在軟件設(shè)計(jì)中運(yùn)用設(shè)計(jì)模式,發(fā)現(xiàn)更多設(shè)計(jì)模式。) |
第13單元 設(shè)計(jì)模式應(yīng)用策略- 綜合應(yīng)用分析 內(nèi)容一:大型系統(tǒng)的設(shè)計(jì)案例分析, 介紹如何預(yù)先應(yīng)用模式,以及如何在第3版本重構(gòu)時(shí)導(dǎo)入模式, 已經(jīng)在后期維護(hù)時(shí)應(yīng)用模式 1.××某省移動(dòng)線路資源維護(hù)系統(tǒng)的背景介紹 2.系統(tǒng)需求分析 3.如何根據(jù)應(yīng)用系統(tǒng)特點(diǎn), 和變化與不變等原因,引入模式 4.根據(jù)應(yīng)用功能,導(dǎo)入設(shè)計(jì)模式 5.第1版本上線時(shí)的系統(tǒng)設(shè)計(jì)分析 6.第1版本,系統(tǒng)設(shè)計(jì)時(shí)遺留的問(wèn)題, 設(shè)計(jì)不足, 缺陷等分析 7.第2版本, 由于增加新功能導(dǎo)致的嚴(yán)重問(wèn)題分析 8.系統(tǒng)出現(xiàn)很多設(shè)計(jì)不足 9.第3版本, 由于增加新功能導(dǎo)致的嚴(yán)重問(wèn)題分析 10.系統(tǒng)開(kāi)始引入重構(gòu),系統(tǒng)的壞味道, 以及重構(gòu),分析在重構(gòu)是如何使用重構(gòu) 11.分析第4版本的系統(tǒng)設(shè)計(jì) 系統(tǒng)在后續(xù)維護(hù)過(guò)程之中的, 設(shè)計(jì)情況。 以及如何在維護(hù)時(shí)期進(jìn)行應(yīng)用模式 |