Sunrays

Blogger Template by ThemeLib.com

Web 架構 - MVC

Published by Will under on 晚上7:04

Web 架構 - MVC

我們可將整個網站應用程式的架構分為三個部份
  1. 顯示層( Presentation Layer )
    主要當作使用者的操作介面,讓使用者輸入資料和顯示資料處理後的結果。( MVC 的 View 部份)
  2. 運算邏輯層 ( Business Logic Layer )
    整個網站的核心部份,包含: 資料處理、連結資料庫和產生資料。( MVC 的 Model 部份)
  3. 控制層( Control Layer)
    控制整個網站處理的流程。介於顯示層和運算邏輯層之中。( MVC 的 Controller )
  4. 補充 : MVC 最主要的精神之一就是 Model 和 View 的分離,二者的分離可讓網頁設計師和程式開發人員獨立工作,互不影響,增加維護的效率

Model 1 與 Model 2 介紹

Model 1 :

依處理方式可分還可分為兩種

1. 完全使用 JSP 開發系統
  • 優點 :
    • 開發時程縮短 : 只需專注開發 JSP
    • 小幅度修改非常容易 : 直接修改 JSP
  • 缺點 :
    • 程式可讀性降低 : 因為程式與網頁標籤混合在一起,增加維護的困難度
    • 程式重複利用性降低 : 當商業邏輯修改時,必須修改所有相關的 JSP
2. 使用 JSP + JavaBean 開發系統
  • 優點
    • 程式可讀性增高 : 將複雜的程式碼寫在 JavaBean 中,減少和網頁標籤混合的情況,有利於維護
    • 可重複利用性高 : 能重複利用 JavaBean 元件
  • 缺點 :
    • 缺乏流程控制 : 這是 Model 1 最大的缺點,缺少 MVC 中的 Controller 去控制相關的流程,每一個
      JSP 都要驗證需求的參數正確度、確認使用者的身份權限、例外發生的處理,,甚至還包含顯示端的網頁編碼原則及語系設定
就 Model 1整體來說,進快速及小型的專案應用開發時,是具有非常大的優勢,但是這樣的結果卻造成未來維護不易的問題,非常不利於應用程式的擴展與更新。


Model 2 :

俗稱的 Model 2 就是採用 MVC 架構的開發模式。MVC是 Model-View-Controller 的縮寫。

  • Model : 應用程式的商業邏輯 (透過 JavaBean、EJB 等元件實作)
  • View : 系統的顯示介面 ( 使用 JSP 來輸出 HTML)
  • Controller : 提供應用程式的處理程序控制 ( 通常是 Servlet )
這種設計模型把應用邏輯、處理程序和顯示介面分成不同的元件實作,這些元件可以進行交互和重手,來彌補了 Model 的不足
  • 優點 :
    • 開發流程更為明確 :
      完全切開顯示端與商業邏輯端的開發,讓美工設計人員與程式開發人員可以專注於本身的工作,有利於大型系統的開發
    • 核心的程序管控 : 由 Controller 控制整個流程,可以減少 JSP
      需要撰寫許多條件判斷邏輯及流程管控等等程式碼
    • 維護容易 : 不論是後端商業邏輯物件或前端的網頁呈現,都透過控制中心來掌控,如果有商業邏輯的變更,可以輕易地
      修改
      Model 端的程式,而不用去修改相關的 JSP 檔案
  • 缺點 :
    • 學習時間較長 : 各家公司都有本身的 MVC 架構,需要花更多的時間去熟悉了解他們的流程與觀念
    • 開發時間較長 : 因為需要設計 MCV 各物件彼此的資料交換格式與方法,會需要更多的時間在於系統設計上
目前有很多可供使用的 MVC 框架,由於 Struts 具有完整文件,並且公開原始碼,因是目前世界最多 Java族群使用的框架。

補充 : Model 1 和 Model 2 的範例程式 ( JSP 2.0 技術冊 p.19-8)
參考資料 : JSP 2.0 技術手冊

0 意見:

張貼留言

 

Blog Archive

Lipsum

Followers