a. 問題
如果開發一個企業級應用,只需要一種客戶端的話,那么一切都非常容易解決。但真實情況是,我們必須面對運行在各種設備上客戶端,象PDA,WAP瀏覽器以及運行在桌面上的瀏覽器,我們不得不開發不同的應用程序來處理來自不同客戶端的請求。數據訪問與現實將混淆在一起,可能會出現重復的數據訪問,導致整個開發周期沒有必要的延長。
b. 建議的解決方法
Model-View-Controller (MVC) 開發模式被證明是有效的處理方法之一。它可以分離數據訪問和數據表現。你可以開發一個有伸縮性的,便于擴展的控制器,來維護整個流程。如圖1所示為整個模式的結構。MVC模式可以被映射到多層企業級的J2EE應用上。
§ 所有的企業數據以及商業邏輯可以作為模式。
§ 視圖可以通過模式訪問數據,并根據客戶端的要求來顯示數據。視圖必須保證當模式改變的時候,數據顯示也必須同時改變。
§ 控制器用來結合模式和視圖,把客戶端來的請求轉換成模式能夠理解并執行的請求,并且根據請求以及執行結果來決定下一次顯示那一個視圖。
根據以上的邏輯,你可以象這樣建立一個應用:
§ 應用的商業邏輯由MVC中的模式也就是EJB來表現。模式必須處理由控制器傳遞過來的對數據的訪問請求。
§ 多個頁面組成了MVC中的視圖,這些視圖必須隨模式一起更新。
§ 控制器是一系列接收用戶動作的對象,他們把用戶的請求轉換成模式可理解的請求,并決定顯示那一個頁面當模式處理完請求后。
c. 要點
§ MVC結構適用于那些多用戶的,可擴展的,可維護的,具有很高交互性的系統。
§ MVC可以很好的表達用戶的交互和系統模式。
§ 很方便的用多個視圖來顯示多套數據,是系統很方便的支持其他新的客戶端類型。
§ 代碼重復達到最低。
§ 由于分離了模式中的流控制和數據表現,可以分清開發者的責任,另外,也可以加快產品推向市場的時間。