Successfully reported this slideshow.
Your SlideShare is downloading. ×

Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架

  1. 1. CHAPTER 12 • 從模式到框架 學習目標 • 了解何謂設計模式 • 認識Gof模式、Java EE模式與架構模式 • 從重構中體會模式 • 了解程式庫與框架的 差別
  2. 2. 認識設計模式 • Design Pattern – 就是前人留下的經驗。在從前有些開發人員,因 為作了哪些設計,而在日後維護發生問題,之後 又改用哪些設計,發現類似的維護問題不再發生, 這些設計的良好經驗就是設計模式。每個模式會 給予一個名稱,並解決某個情境下的問題。
  3. 3. Template Method模式
  4. 4. Template Method模式
  5. 5. Gof模式 • Design Patterns Elements of Reusable Object- Oriented Software – Erich Gamma、Richard Helm、Ralph Johnson、 John Vissides • Gang of four
  6. 6. Intercepting Filter模式
  7. 7. Java EE模式 • 在建立Java企業級應用程式的過程中,由於 應用程式包括了許多元件,使用了特定的 Java技術,應用於各種不同的環境中,在建 立這些Java軟體元件的過程中,歸納出許多 設計上的最佳實踐(Best Practice),這些最 佳實踐就是歸納在Java EE設計模式之中。
  8. 8. Gof模式、Java EE模式 • 從實作的層面來看,Gof設計模式可使用任何 物件導向語言來實現,23種設計模式建議的 設計方式只是個出發點,實際上可以根據不 同語言的特性或需求而作變化。 • Java EE設計模式則比較專屬於Java EE平台, 某些Java EE模式實現時會需要特定的Java EE 特性或技術,使得Java EE模式比較像是特定 平台(Java EE平台)的慣用模式。
  9. 9. Model-View-Controller模式
  10. 10. Model 2模式
  11. 11. Business Delegate模式
  12. 12. Service Locator模式
  13. 13. Transfer Object模式 • 實作Web應用程式若使用了某個前端技術, 例如Struts,你會用ActionForm之類的物件 來封裝表單資訊,如果你直接將這個物件傳 送至後端元件,甚至在DAO中利用 ActionForm來抽取必要的資訊以進行儲存, 那麼將來若前端不採用Struts了,那你整個應 用程式從前端至後端DAO都要進行修改。
  14. 14. Transfer Object模式 • 應該在Web前端,例如擔任控制器角色的 Action元件中,就將ActionForm中的必 要資訊抽取出來,封裝為一個與前端、後端 技術都無關的物件,在應用程式之中進行資 料的攜帶,如此你的應用程式元件本身,才 不會受到前端、後端資訊的變換,而需要作 出修改。
  15. 15. Front Controller模式
  16. 16. 程式庫與框架 • 如果撰寫某個程式,一開始從頭到尾的流程, 都是你親自撰寫,例如撰寫桌面應用程式, 會從main()程式進入點開始,過程中需要用 到字串處理時,可呼叫字串處理的API,需要 日期處理時,可呼叫日期處理的API,「整個 過程由你決定,在必要時取得相關的API來使 用,這時就是以程式庫的概念在使用API」。
  17. 17. 程式庫與框架 • Template Method的概念,有些API在設計時, 事先規範好某個流程,這些流程不是由你撰 寫,你只需要依API的規範,實作出流程中沒 有實作或僅有簡單實作的部份,「程式在運 行之後,會依API事先定義好的流程進行,過 程中空缺的部份,再呼叫你實作的程式碼, 將這個概念擴大,就突顯出框架的意涵」。
  18. 18. 程式庫與框架 • 框架都在實現某個「架構」或某個「流程」 • 使用了支援某個架構、流程的框架,就代表 了應用程式必須依照框架定義的架構、流程 來實作,才可以收到使用該框架的效益 • 認清自己應用程式將使用的架構、流程,再 物色支援該架構、流程的框架,才是正確的 作法

×