19

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

Embed Size (px)

DESCRIPTION

Servlet & JSP 教學手冊第二版

Citation preview

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

CHAPTER 12

• 從模式到框架

學習目標

• 了解何謂設計模式

• 認識Gof模式、Java EE模式與架構模式

• 從重構中體會模式

• 了解程式庫與框架的差別

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

認識設計模式

• Design Pattern

– 就是前人留下的經驗。在從前有些開發人員,因為作了哪些設計,而在日後維護發生問題,之後又改用哪些設計,發現類似的維護問題不再發生,這些設計的良好經驗就是設計模式。每個模式會給予一個名稱,並解決某個情境下的問題。

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

Template Method模式

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

Template Method模式

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

Gof模式

• Design Patterns Elements of Reusable Object-

Oriented Software

– Erich Gamma、Richard Helm、Ralph Johnson、John Vissides

• Gang of four

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

Intercepting Filter模式

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

Java EE模式

• 在建立Java企業級應用程式的過程中,由於應用程式包括了許多元件,使用了特定的Java技術,應用於各種不同的環境中,在建立這些Java軟體元件的過程中,歸納出許多設計上的最佳實踐(Best Practice),這些最佳實踐就是歸納在Java EE設計模式之中。

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

Gof模式、Java EE模式

• 從實作的層面來看,Gof設計模式可使用任何物件導向語言來實現,23種設計模式建議的設計方式只是個出發點,實際上可以根據不同語言的特性或需求而作變化。

• Java EE設計模式則比較專屬於Java EE平台,某些Java EE模式實現時會需要特定的Java EE

特性或技術,使得Java EE模式比較像是特定平台(Java EE平台)的慣用模式。

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

Model-View-Controller模式

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

Model 2模式

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

Business Delegate模式

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

Service Locator模式

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

Transfer Object模式

• 實作Web應用程式若使用了某個前端技術,例如Struts,你會用ActionForm之類的物件

來封裝表單資訊,如果你直接將這個物件傳送至後端元件,甚至在DAO中利用ActionForm來抽取必要的資訊以進行儲存,

那麼將來若前端不採用Struts了,那你整個應用程式從前端至後端DAO都要進行修改。

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

Transfer Object模式

• 應該在Web前端,例如擔任控制器角色的Action元件中,就將ActionForm中的必

要資訊抽取出來,封裝為一個與前端、後端技術都無關的物件,在應用程式之中進行資料的攜帶,如此你的應用程式元件本身,才不會受到前端、後端資訊的變換,而需要作出修改。

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

Front Controller模式

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

程式庫與框架

• 如果撰寫某個程式,一開始從頭到尾的流程,都是你親自撰寫,例如撰寫桌面應用程式,會從main()程式進入點開始,過程中需要用

到字串處理時,可呼叫字串處理的API,需要日期處理時,可呼叫日期處理的API,「整個過程由你決定,在必要時取得相關的API來使用,這時就是以程式庫的概念在使用API」。

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

程式庫與框架

• Template Method的概念,有些API在設計時,事先規範好某個流程,這些流程不是由你撰寫,你只需要依API的規範,實作出流程中沒有實作或僅有簡單實作的部份,「程式在運行之後,會依API事先定義好的流程進行,過程中空缺的部份,再呼叫你實作的程式碼,將這個概念擴大,就突顯出框架的意涵」。

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

程式庫與框架

• 框架都在實現某個「架構」或某個「流程」

• 使用了支援某個架構、流程的框架,就代表了應用程式必須依照框架定義的架構、流程來實作,才可以收到使用該框架的效益

• 認清自己應用程式將使用的架構、流程,再物色支援該架構、流程的框架,才是正確的作法