- 搞定J2EE核心技術與企業應用
- 常建功 王向華編著
- 1381字
- 2018-12-29 13:49:36
1.3 MVC模式原理
MVC的英文全稱是Model-View-Controller,即“模式-視圖-控制器”。MVC模式起源于Smalltalk語言,它是Xerox PARC在20世紀80年代為編程語言Smalltalk-80發明的一種軟件設計模式,MVC模式的結構由以下3個部分組成:模型(Model)、視圖(View)和控制器(Controller)。MVC模式的結構圖如圖1.10所示。

圖1.10 MVC模式的結構圖
圖1.10的意思是:不管是視圖的改變還是模型的改變,或者控制器的改變,都會引起另外兩個的改變,按照模型層、視圖層、控制層進行分解,從而使得整個系統責任明確、接口清晰,加快了設計開發過程。下面分別來介紹這三個層次。
1.模型層
這里的模型就是指業務邏輯的處理和數據的存儲,它分為兩類模型:業務邏輯模型和數據模型。模型接收視圖請求的數據,并返回最終的處理結果。這里之所以把模型層單獨地抽取出來,是為了應對業務規則的變化,也是判斷開發人員是否優秀的設計依據。MVC并沒有提供模型的設計方法,而只告訴開發人員應該組織管理這些模型,以便于模型的重構和提高重用性。
數據模型就是指對數據的持久化,它實現了對視圖和模型之間交互的支持。實現時把“做什么(業務處理)”和“怎么做(業務實體)”分離,這樣可以實現業務邏輯的重用。對一個開發者來說,就可以專注于業務模型的設計。
2.視圖層
視圖層主要是用來展現用戶所需要的數據,它是用戶和系統進行交互的界面,這部分工作一般可以由美工人員來進行開發和維護,一般可以采用HTML頁面、XML、Servlet和Applet等技術。
一般來說,視圖只接收來自模型的數據并顯示給用戶,以及將用戶界面的輸入數據和請求傳遞給控制和模型。MVC設計模式對于視圖的處理僅限于視圖上數據的采集和處理,以及用戶的請求,而不包括在視圖上業務流程的處理,業務流程的處理和狀態的改變則交給模型層來處理。
視圖部分的大致處理流程是:頁面模板定義頁面的布局,頁面配置文件定義視圖標簽的具體內容,由頁面布局策略類初始化并加載頁面,每個用戶部件根據自己的配置進行初始化,加載校驗器并設置參數,以及事件的委托等,用戶提交后,通過了表示層的校驗,用戶部件把數據自動提交給業務實體即模型。
3.控制層
控制層就是一個分發器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求。控制層就像一個中轉站,它從用戶那里接收請求,并根據用戶的請求,將模型與視圖匹配在一起,共同完成用戶的請求。
在實現上,為了能夠控制和協調每個用戶跨越多個請求的處理,控制機制應該以集中的方式進行管理。用戶提交一個表單或者單擊一個鏈接,控制層接收請求后,它本身并不處理業務信息,而是根據用戶的請求類型,把用戶的信息傳遞給相對應的模型,告訴模型做什么,等模型處理完畢后,再把模型處理后的數據選擇符合要求的視圖返回給用戶。
通過將模型、視圖與控制器分離,使得一個模型可以對應多個視圖,一個視圖可能對應多個模型。如果用戶通過某個視圖的控制器改變了模型的數據,所有其他依賴于這些數據的視圖都應反映出這些變化。因此,無論何時發生了何種數據變化,控制器都會將變化通知所有的視圖,導致顯示的更新。
模型、視圖、控制器三者之間的關系和各自的主要功能,即它的功能示意圖如圖1.11所示。

圖1.11 MVC模式的功能示意圖
通過上面的講解,可以得出MVC的處理過程:首先用戶通過視圖層發出請求,接著控制器接收用戶的請求,并決定應該調用哪個模型來進行處理,然后模型用業務邏輯來處理用戶的請求并返回數據,最后控制器將處理后的數據傳遞給視圖層,并通過視圖層展現給用戶。
- Managing Mission:Critical Domains and DNS
- 基于LabWindows/CVI的虛擬儀器設計與應用
- Photoshop CS4經典380例
- B2B2C網上商城開發指南
- JBoss ESB Beginner’s Guide
- Pig Design Patterns
- RPA(機器人流程自動化)快速入門:基于Blue Prism
- 21天學通C語言
- 單片機C語言程序設計完全自學手冊
- Introduction to R for Business Intelligence
- PostgreSQL 10 High Performance
- ARM嵌入式系統開發完全入門與主流實踐
- 微控制器的選擇與應用
- Practical Internet of Things with JavaScript
- 數據庫技術:Access 2003·計算機網絡技術