




已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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 ?,增廣見聞、增加經驗。 開發(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(參數),Xml config file(設定參數),範例:時常需要切換多臺資料庫,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,在系統中有一個Runtime物件代表這個Instance。 應用程式可以透過Runtime來和底層的JVM溝通。 對整個系統來說,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,博學,實作經驗,連結與印証,內化與活用,不斷將經驗與所習Patterns連結 不需要刻意使用Patterns 有時候經由適當的重構會發(fā)現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 著作,但是是數年前的著作,前幾章仍有閱讀的價值。(可自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,經典 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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 走進社團世界
- 共建和諧美好社會課件重現
- 《建筑工程監(jiān)理法規(guī)》教學課件
- 《風險管理簡介》課件
- 2025停車場車位租賃合同協議書范本
- 幼兒園小班科學《美美和丑丑》教案
- 【課件】保護人身權+課件-2024-2025學年統編版道德與法治七年級下冊
- 2025年云南事業(yè)單位c類真題及答案
- 河南省信陽市2023-2024學年高三上學期第二次教學質量檢測試題 數學 含答案
- 《安全防范不松懈》課件
- 十八項醫(yī)療核心制度培訓新版-課件
- 高考志愿規(guī)劃師資格認定考試題庫
- 小學生心理健康主題班會課件
- 2024年深圳中考數學真題及答案
- 2024-2025學年七年級語文上冊第一單元測試卷(統編版2024新教材)
- 我國化妝品企業(yè)利用跨境電商平臺開拓國際市場的現狀、問題與對策-以廣州市雅創(chuàng)化妝品公司為例
- 2024年四川省南充市中考道德與法治試卷真題(含官方答案及詳解)
- 廣告宣傳物料投標方案(技術方案)
- GJB9001C-2017組織內外部環(huán)境因素的相關方需求和期望分析與風險和機遇識別評價分析及應對措施一覽表
- (正式版)CB∕T 4552-2024 船舶行業(yè)企業(yè)安全生產文件編制和管理規(guī)定
- 公司營銷管理體制改革方案
評論
0/150
提交評論