MVC ,即 Model-View-Controller ,“模型 - 視圖 - 控制器”,是 Xerox PARC 在八十年代為編程語言 Smalltalk - 80 發明的一種軟件設計模式,最初是用來構建用戶界面。它包括三類對象:模型 Model 是應用對象(數據和應用規則),視圖 View 是它在屏幕上的表示,控制器 Controller 定義用戶界面對用戶輸入的響應方式。
2、? MVC 特征
?????? 特征一:視圖與模型分離,一旦模型的數據發生了變化,模型將通知它的視圖,而視圖將于模型通信以訪問相關的數據;
?????? 特征二:視圖可以嵌套。
3、? MVC 中的設計模式
?????? 3.1 View-Model 關系與觀察者模式
??????? 觀察者( Observer )模式:定義對象間的一種一對多的依賴關系,以便當一個對象的狀態發生改變時,所有依賴于它的對象都得到通知并自動刷新。
??????? MVC 通過建立一個“定購 / 通知”機制將視圖和模型分離,一個模型可以有多個視圖,當模型的數據改變后會通知它的所有視圖。
?????? 3.2 View-View 關系組合模式
??????? 組合( Composite )模式:將對象組合成樹形結構以表示“整體-部分”的層次結構,使得對單個對象和復合對象的使用具有一致性。
MVC 用 View 類的子類 CompositeView 類來支持嵌套視圖。 MVC 將一些對象劃為一組,并將該組對象當作一個對象來使用。
?????? 3.3 View-Controller 關系與策略模式
??????? 策略( Strategy )模式:定義一系列的算法,把它們一個個封裝起來,并且使它們可相互替換。算法的變化可以獨立于使用者。
??????? MVC 將響應機制封裝在 Controller 對象中, MVC 允許在不改變視圖外觀 View 的情況下改變視圖對用戶輸入的響應方式。 View 使用 Controller 的某個實例來實現一個特定的響應策略,實行不同的響應策略需要用不同的 Controller 實例替換即可。
4、? MVC 框架
MVC 框架把一個應用的輸入、處理、輸出流程按照 Model 、 View 、 Controller 的方式進行分離,這樣一個應用被分成三個層——視圖層、控制層和模型層。
比較常見的
MVC
框架有:
Struts
、
Webwork
、
Tapestry
、
JSF
、
Spring MVC
等。
資料:
《設計模式》?GOF
MVC在Web系統中的模式與應用 http://dev2dev.bea.com.cn/techdoc/20031194.html
MVC模式 http://www.itisedu.com/phrase/200604231324325.html