張睿涵 遼寧錦州渤海大學信息科學與技術學院
基于經典MVC架構的實現(xiàn)Web應用系統(tǒng)設計與實現(xiàn)
張睿涵 遼寧錦州渤海大學信息科學與技術學院
MVC設計架構是一種經典的軟件設計模式,并廣泛應用于Web應用系統(tǒng)開發(fā)過程,本文分析討論面向對象的MVC設計模式,分析該設計模式基本原理和構成機制,并將MVC設計架構融入到本文的系統(tǒng)開發(fā)過程中。通過對MVC設計模式的研究,本文講述MVC設計架構的應用系統(tǒng)開發(fā)原理及優(yōu)缺點,基于MVC設計架構的開發(fā)軟件應用系統(tǒng)的流程,并基于MVC設計架構實現(xiàn)光盤發(fā)布應用系統(tǒng)模型,將MVC設計架構應用于JSP開發(fā)技術中。經過本文研究的系統(tǒng)可以充分使用MVC設計架構。
MVC設計架構 Web應用系統(tǒng) J2EE平臺 光盤發(fā)布 JSP技術
隨著Web應用系統(tǒng)的使用不斷增多的現(xiàn)象,對于Web應用系統(tǒng)的開發(fā)與設計使用MVC設計架構,開發(fā)Web應用系統(tǒng)無論選擇什么編程語言,無論應用系統(tǒng)業(yè)務功能流程多復雜,都可成為應用系統(tǒng)所提供通用設計模式框架,為了構造通用應用系統(tǒng)提供基本的設計框架。本文通過對光盤發(fā)布應用系統(tǒng)的實踐,深入研究基于MVC設計架構的Web應用系統(tǒng)。
本文涉及到的MVC設計模式(模型M一視圖V一控制器C),這種設計模式堪稱軟件設計的經典模式。每個系統(tǒng)的用戶界面,負責顯示系統(tǒng)數據和與用戶交互操作的功能。用戶希望與應用系統(tǒng)之間保持交互操作順暢,用戶希望系統(tǒng)能呈現(xiàn)動態(tài)改變內容或者其他展現(xiàn)形式,這就要求系統(tǒng)需要滿足用戶界面需求的同時,系統(tǒng)邏輯模型獨立于用戶界面的組成,MVC開發(fā)模型使得類對象的強制分離,因此,實現(xiàn)Web應用系統(tǒng)基于MVC設計模式作為一種層次結構分離的模型是最佳的選擇,Web應用系統(tǒng)的設計、開發(fā)和維護變得非常靈活,極大地提高了模塊之間的重用性。
2.1 MVC的基本設計思想
Model、View和Controller的簡稱,即是MVC。需要將一個應用系統(tǒng)的輸入、數據加工處理和輸出過程均是按照這個流程方式實現(xiàn)業(yè)務功能的分離,應用系統(tǒng)形成以模型、視圖和控制三層的軟件架構。
模型層(Model):負責處理業(yè)務/狀態(tài)的處理過程以及業(yè)務規(guī)則定義。業(yè)務狀態(tài)處理流程對于其他層而言模糊操作,模型層接受來自視圖層用戶請求的數據處理過程,并為用戶返回有關的處理結果。
視圖層(Viewer):負責用戶數據交互操作界面,因此,對于Web應用系統(tǒng)而言,基本上為HTML實現(xiàn)的網頁,但是,也可以將XHTML、XML和Applet等技術應用到HTML網頁前端。通常情況下,應用系統(tǒng)可能存在多種不同的視圖層,通過MVC設計模式實現(xiàn)的系統(tǒng),視圖的作用負責對頁面控件數據的采集和系統(tǒng)處理數據的顯示,即負責接收來自用戶請求以及顯示處理結果的功能,而不負責在視圖層的業(yè)務功能處理過程。應用系統(tǒng)的業(yè)務流程處理過程交給模型層處理。
控制層(Controller)完成的是從用戶獲取請求操作,負責模型與視圖建立聯(lián)系,共同完成用戶請求操作。它屬于控制調度層,它負責清楚地告訴程序員,它完全是控制轉發(fā)器,選擇哪種模型,就負責處理哪種視圖,也就完成哪種用戶請求。在MVC設計模式中,控制層并不需要做任何的業(yè)務數據處理。當用戶點擊某個功能連接時,控制層接受來自用戶的請求之后,并不需要處理業(yè)務數據,它只負責找到相匹配的模型的函數,并將參數傳遞該模型車的函數,并告訴應該做什么,當模型層處理完畢業(yè)務數據控制層接收來自于模型層的處理結果,并把符合要求的處理結果返回到視圖層為用戶顯示。因此,模型層與視圖層是一對多的關系。
在MVC設計思想中的核心是業(yè)務功能模型的設計。業(yè)務模型層設計過程中數據模型。數據模型主要完成數據持久化操作,是指實體對象與表字段一一映射關系。例如:將淘寶訂單數據保存到系統(tǒng)的數據庫中,或者從系統(tǒng)的數據庫獲取淘寶訂單數據??梢詫⒋四P蛦为毩_列,全部的數據庫操作僅僅限于該模型中,為用戶提供相關服務。
2.2 基于MVC設計模式開發(fā)應用系統(tǒng)的優(yōu)點
此前的Web應用系統(tǒng)將業(yè)務數據處理與結果顯示置于同一個頁面的編程方式,這種方式使得程序編寫與調試變得麻煩,而基于MVC設計模式實現(xiàn)的應用系統(tǒng)設計,具備下列的優(yōu)點:
(1)模型層與視圖層是一對多的關系。一個模型與多個視圖建立聯(lián)系??梢源_保全部相關的視圖及時獲得來自于模型層數據的變化,使得全部相關的視圖與控制層實現(xiàn)操作同步。
(2)視圖與控制器實現(xiàn)靈活對接,允許新修改視圖與控制層之間關聯(lián)的業(yè)務數據,而且重要的是可以實現(xiàn)需求動態(tài)更改相互的關聯(lián),例如:打開、修改或者關閉等操作。
(3)模型的可移植性與可重用性。因為模型是獨立于視圖的,所以可以把一個模型獨立地移植到新的平臺工作。需要做的只是在新平臺上對視圖和控制器進行新的修改。
(4)使用MVC設計思想的應用系統(tǒng)具有清晰的軟件結構。大多數應用系統(tǒng)都可以實現(xiàn)的MVC三層架構設計,正因如此,方便基于此設計模式建立一種可以通用框架結構,不局限于視圖設計過程中,而且還可以用在系統(tǒng)總體布局或者局部功能設計。
(5)便于應用系統(tǒng)規(guī)劃管理。在MVC架構設計中,由于不同層職責不同,每層具體應用又存在相似的特征,便于應用系統(tǒng)規(guī)劃管理、管理程序代碼,極大提高應用系統(tǒng)編程效率。
(6)有利于應用系統(tǒng)的功能擴展與維護操作。一個應用系統(tǒng)被設計為3層架構模式,有時改變某層需求就能滿足用戶。例如:某個應用系統(tǒng)的業(yè)務流程設計或者業(yè)務規(guī)則定義的改變只需修改MVC結構中的模型層即可。
根據MVC的基本設計,基于MVC實現(xiàn)的應用系統(tǒng)設計首先要獲取系統(tǒng)應用的需求,設計應用系統(tǒng)的MVC結構,即將其按照系統(tǒng)功能設計MVC的三層結構,前提需要充分了解系統(tǒng)的全部需求。這里所闡述的應用系統(tǒng)實例是本人日常工作中所負責軟件項目部分—隨書光盤發(fā)布應用系統(tǒng)的設計與開發(fā)。設計該系統(tǒng)的目的完成非圖書資源在高校內的發(fā)布情況,以方便廣大師生借閱使用。
3.1 應用系統(tǒng)的需求分析
通過對高校很多師生及系統(tǒng)的管理人員的需求展開調查分析,并總結出光盤發(fā)布應用系統(tǒng)主要功能功能包括:
(1)前臺業(yè)務管理功能。為高校很多師生提供業(yè)務服務功能,主要有圖書檢索、電子資料下載、某些特殊資源開放申請功能以及師生留言等功能。
(2)后臺綜合業(yè)務管理功能。該功能是系統(tǒng)管理員實現(xiàn)管理、發(fā)布某些資源提供便利的渠道。主要包括:發(fā)布與更新電子資料功能、不定期的電子數據批量導入功能、處理審核審批功能以及數據備份與恢復操作。
3.2 數據庫設計
根據應用系統(tǒng)的功能實際需求,主要實體是圖書表以及光盤發(fā)布記錄表等等。根據數據庫設計原理獲取表的概念模型,因此,圖書表(book)轉換的對應關系主要包括:bookID(圖書序號)、bookName(圖書名稱)、bookType(圖書分類信息)、bookT(中英文對照)、bookD(是否具有電子資源)、bookask(圖發(fā)布申請字段)等。
3.3 構建基于MVC設計模式的系統(tǒng)模型
根據MVC設計模式,使用數學參考模型表示MVC設計實現(xiàn)的應用系統(tǒng):
A表示應用系統(tǒng)的簡稱,M、V、C分別MVC設計模式中的三層結構,R表示用戶請求列表,正是,根據該數學參考模型,最后將確定的光盤發(fā)布應用系統(tǒng)的全部功能進行劃分層次。
(1)系統(tǒng)將直接與用戶交互的模塊劃分到視圖層V列表中。
(2)把數據庫邏輯處理部分劃分到模型層M列表中,把數據庫的建立連接管理、數據檢索功能(包含:目錄分類檢索、初步數據檢索、高級數據檢索)以及數據更新操作管理(發(fā)布與更新電子資料功能、不定期的電子數據批量導入功能、處理審核審批功能以及數據備份與恢復操作)劃分到模型層M列表中。
(3)來自于用戶請求處理并調用對應業(yè)務邏輯關系,并將業(yè)務處理結果返回視圖層為用戶頁面顯示,負責收集處理結果和控制轉發(fā)由控制層實現(xiàn)。
建立應用系統(tǒng)的MVC設計模式之后,方可選擇適用的開發(fā)工具實現(xiàn)系統(tǒng)的開發(fā)工作。本文根據實際情況選擇了JSP技術、Servlet技術和JavaBeans技術的結合。
4.1 實現(xiàn)應用系統(tǒng)的技術組合
JSP技術、Servlet技術和JavaBeans技術的結合是MVC設計模式的經典應用,三者的結合可以更好地實現(xiàn)MVC設計模型的應用系統(tǒng)。
(1)應用系統(tǒng)的模型層。它是由JavaBean對象組件完成,并將業(yè)務數據封裝到其中。
(2)應用系統(tǒng)的視圖層。它是由JSP技術負責實現(xiàn)頁面數據的顯示功能。
(3)應用系統(tǒng)的控制層。它是由Servlets技術接受來自于用戶輸入請求以及某個操作的提交,并根據相應的請求操作,調用相應業(yè)務邏輯處理組件,并收集處理結果轉發(fā)給相應的視圖層頁面顯示。
4.2 實現(xiàn)Web應用系統(tǒng)
上述已經對光盤發(fā)布應用系統(tǒng)的技術架構分析、功能需求分析以及數據庫結構分析,而三種技術的組合更好的完成了MVC設計思想。為此,三種技術的結合有效的完成映射操作。將應用系統(tǒng)模型層的各種業(yè)務處理邏輯通過使用JavaBeans對象組件實現(xiàn),本文實現(xiàn)的應用系統(tǒng)的數據庫采用SQL2005管理技術;視圖層采用JSP技術每個功能界面;同時控制層的編寫通過Servlets控制器實現(xiàn)接受請求和處理結果的轉發(fā)操作:在應用系統(tǒng)的實現(xiàn)過程中,使用JS作為前端判斷技術,用于表單字段的判斷及數據輸入的標準性判斷。
基于MVC設計模式開發(fā)實現(xiàn)的光盤發(fā)布應用系統(tǒng),由于其應用到MVC設計模式存在的優(yōu)勢,應用系統(tǒng)中持久層、模型層、業(yè)務處理層與顯示層有效分離,好處是:一是在開發(fā)過程中,便于多人協(xié)作編碼,又便于系統(tǒng)的設計文檔編寫工作,提高多人共同開發(fā)的效率;二是應用系統(tǒng)上線運行之后的升級維護操作必不可少,用戶希望與應用系統(tǒng)之間保持交互操作順暢,對應用系統(tǒng)的功能擴展與維護變得簡單可行。基于MVC設計的應用系統(tǒng)正被更多的人使用,如果時一種通用設計框架,為開發(fā)者帶來更多的開發(fā)便利,提高應用系統(tǒng)的代碼可重用性提供了新的契機。
[1]宋國慶.軟件開發(fā)綜合訓練教程基于JavaWeb應用[M].北京:高等教育出版社,2008
[2]王映輝,王英杰,王彥君,等.基于MVC的軟件界面體系結構研究與實現(xiàn)[J].計算機應用研究,2004(9):188-199
[3]孫衛(wèi)琴.精通Struts:基于MVC的JavaWeb設計與開發(fā)[M].北京:電子工業(yè)出版社,2004
[4]劉春花,王忠民.基于MVC模式的遠程評議系統(tǒng)的設計與實現(xiàn)[J].計算機工程與設計,2008,29(13):3648
[5]王曉楠.MVC的設計和實現(xiàn)[J].計算機系統(tǒng)應用,2004(3):56-58