




已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
Understanding Design Patterns - for DIDC,廖峻鋒 Apr 28,2004 NCCU Computer Center,Agenda,Software Patterns觀念複習 LSP、OCP and DI Template Method、Factory、Singleton DesignPatterns的分類 Recommended Readings Q & A,Patterns 與棋譜,Why Patterns ?,增廣見聞、增加經(jīng)驗。 開發(fā)人員共同的術語。 簡化軟體設計文件中的描述。,The Pattern System,由POSA96首先提出對Patterns的分類 將Pattern從鉅觀到微觀加以分類 Architectural Patterns (例如:MVC、Layer) Design Patterns (例如:Gof的23個patterns) Idioms (例如大量接合字串問題或Code Style),一些重要的OO技術,LSP:Liskov代換法則 OCP:Open Close Principle Dependency Injection:元件注入技術,LSP:Liskov代換法則,所有的子類別皆可代父出征,實作界面就可保証符合規(guī)格,Interface,Interface規(guī)定了一組契約(method),所有實作它的類別都要實作所有方法。 Client呼叫的是Interface中的方法,所以元件的抽換對Client來說是感覺不到的(不用改code)。,OCP,Open for extension;close for modification Refer to “The Open Close Princlple Tutorial”.,元件注入 Dependency Injection,Dependency Injection provide help us to implement the IoC Interface Injection (type 1 IoC) Setter Injection (type 2 IoC) Constructor Injection (type 3 IoC),Before Adapting DI,After Adapting DI,LoginModule Before Adapting DI,After Adapting DI,DI Frameworks,Apache Avalon Framework (type 1 IoC) Spring Framework (type 2 IoC) Pico Container (type 3 IoC),Template Method /Hook Method,Framework的作者通常將主要邏輯寫在Template Method 中。 Template Method會呼叫若干Hook Method,Hook Method通常就是變異點(Hot Spot)。 覆寫Hook Method,就可改變Template Method的行為。( 例如Servlet的doGet()/doPost() ),Servlet,Factory,一般create一個類別的instance時,我們會使用new 如果在runtime才能決定要new那個類別怎麼辦?,範例:時常需要切換多臺資料庫,Informix A,Informix B,Oracle C,MySQL D,IfxAConnection,IfxBConnection,OraCConnection,MySqlDConnection,ConnectionFactory,choose,ClientApp,create(參數(shù)),Xml config file(設定參數(shù)),範例:時常需要切換多臺資料庫,template method,hook method,在template method中呼叫hook method,Factory的型式,simple static factory Factory method (Gof) Abstract factory (Gof),Simple Static Factory,BmwCar bmwCar = (BmwCar) CarFactory.createCar(“BMW”);,BenzCar benzCar = (BenzCar) CarFactory.createCar(“Benz”);,CarFactory的實作,public class CarFactory public static createCar(String carType) if (carType=) else if() else ,一堆if else 如何refactoring?,Refactoring by Factory Method Pattern,Using Map as Factory Container,carFactoryContainer : java.util.HashMap,CarFactory carFactory = getCarFactory(“BMW”); BmwCar bmwCar = (BmwCar) carFactory.create();,getCarFactory without mutiple ifelse,CarFactory getCarFactory(String carType) return carFactoryContainer.get(carType); ,SingletonGof95,java.lang.Runtime 每一個Java應用程式都會對應一個Runtime的Instance,在系統(tǒng)中有一個Runtime物件代表這個Instance。 應用程式可以透過Runtime來和底層的JVM溝通。 對整個系統(tǒng)來說,Runtime應只有一個Instance。,System.Runtime,Design Patterns的五大建構原則(圖),Unification,Separation,觀察:Template在子類別!,Patterns的五大建構原則,Unification,Template method,Hook method,template、hook在同一個Class,Servlet,Separation,Template method,Hook method,Template Class 與 Hook Class有委任關係,Observer Pattern,如何活用Patterns,博學,實作經(jīng)驗,連結與印証,內(nèi)化與活用,不斷將經(jīng)驗與所習Patterns連結 不需要刻意使用Patterns 有時候經(jīng)由適當?shù)闹貥嫊l(fā)現(xiàn)Patterns的必要性。,多看別人的Code,Recomanded Readings,Architectural Patterns,P of EAA,Core J2EE Patterns 2/e,OO入門推薦書藉,(C.Larman 02) 對OO、UML、RUP、Framework及Design Patterns做了很棒的入門介紹。 公認最佳的OO技術入門書。 中譯本:趙光正譯 nt720元。,Framework進階閱讀,Building Application Framework (Wiley)-這本很像論文集,不好唸且錯誤很多,宜以讀書會方式加以了解。 Java Application Framework (Wiley). 應用架構入門與實例 臺灣本土唯一一本Framework 著作,但是是數(shù)年前的著作,前幾章仍有閱讀的價值。(可自MISOO上自由下傳)。,Design Patterns學習地圖,精通任一種OO語言及OO基本觀念(繼承封裝多形)。 Thinking in Java(有中譯本) . Design Patterns入門 Java與樣式理論 / Java與樣式實作 (閻宏) Applying UML and Patterns: An Introduction to Object-Oriented Analysis, 2/e(有中譯本) Design Patterns Explained: A New Perspective on Object-Oriented Design(有中譯本) Design Patterns 於 Java 語言上的實習應用(有中譯本),Design Patterns學習地圖2,觀察別人如何使用Patterns(Java) Java Design Patterns: A Tutorial Applied Java Patterns(有中譯本) Patterns in Java VI,V2. 活用Patterns Design Patterns Java Workbook(有中譯本) Pattern Hatching: Design Patterns Applied(這本是以C+為例).,Design Patterns學習地圖3,經(jīng)典 Gof(有中譯本) Architectural Patterns Patterns of Enterprise Application Architecture Pattern Oriented Software Architecture (POSA) 這本書scope非常廣,包含了Software Architecture、Architectural Patterns 、Design
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國icu(監(jiān)護病房)產(chǎn)業(yè)競爭格局及發(fā)展戰(zhàn)略研究報告
- 新鄉(xiāng)工程學院《自動化專業(yè)實驗Ⅰ》2023-2024學年第二學期期末試卷
- 新疆現(xiàn)代職業(yè)技術學院《財務信息系統(tǒng)分析與設計》2023-2024學年第二學期期末試卷
- 廣東省東莞市寮步鎮(zhèn)XX學校2024屆中考適應性考試數(shù)學試題含解析
- 2025年項目部安全培訓考試試題附完整答案(必刷)
- 2024-2025企業(yè)管理人員安全培訓考試試題及參考答案【達標題】
- 2024-2025工廠職工安全培訓考試試題答案達標題
- 2025年廠里廠里安全培訓考試試題(新)
- 2024-2025安全培訓考試試題及答案全套
- 2024-2025公司廠級員工安全培訓考試試題及參考答案【典型題】
- MOOC 動物學-華中農(nóng)業(yè)大學 中國大學慕課答案
- 材料科技有限公司年產(chǎn)12500噸電子冷卻液項目環(huán)評可研資料環(huán)境影響
- 貝雕工藝材料
- 轉轉的驗機報告
- 九年級英語單詞默寫表(人教版)
- 《草本花卉金魚草》課件
- 醫(yī)療器械銷售項目立項報告
- 北京市順義區(qū)2024屆中考一模生物試題含解析
- 從龍的形象看媽祖的文化精神
- 瀝青路面廠拌熱再生技術指南
- 配電箱驗收表
評論
0/150
提交評論