MVC設計模式簡介_第1頁
MVC設計模式簡介_第2頁
MVC設計模式簡介_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、MVC設計思想MVC英文即Model-View-Controller ,即把一個應用的輸入、 處理、輸出流程按照 Model、View、Controller的方式進行分離,這樣一個應用被分成三個層一一模型層、視圖層、控制層。視圖(View)代表用戶交互界面,對于 Web應用來說,可以概括為 HTML界面,但有可 能為XHTML、XML和Applet。隨著應用的復雜性和規模性,界面的處理也變得具有挑戰性。一個應用可能有很多不同的視圖,MVC設計模式對于視圖的處理僅限于視圖上數據的采集和處理,以及用戶的請求, 而不包括在視圖上的業務流程的處理。業務流程的處理交予模型(Model)處理。比如一個訂單

2、的視圖只接受來自模型的數據并顯示給用戶,以及將用戶界面 的輸入數據和請求傳遞給控制和模型。模型(Model):就是業務流程/狀態的處理以及業務規則的制定。業務流程的處理過程對其它層來說是黑箱操作,模型接受視圖請求的數據,并返回最終的處理結果。業務模型的設計可以說是MVC最主要的核心。目前流行的EJB模型就是一個典型的應用例子,它從應用技術實現的角度對模型做了進一步的劃分,以便充分利用現有的組件,但它不能作為應用設計模型的框架。它僅僅告訴你按這種模型設計就可以利用某些技術組件,從而減少了技術上的困難。對一個開發者來說,就可以專注于業務模型的設計。MVC設計模式告訴我們,把應用的模型按一定的規則抽

3、取出來,抽取的層次很重要,這也是判斷開發人員是否優秀的設計依據。抽象與具體不能隔得太遠,也不能太近。MVC并沒有提供模型的設計方法,而只告訴你應該組織管理這些模型,以便于模型的重構和提高重用性。我們可以用對象編程來做比喻,MVC定義了一個頂級類,告訴它的子類你只能做這些,但沒法限制你能做這些。 這點對編程的開發人員非常重要。業務模型還有一個很重要的模型那就是數據模型。數據模型主要指實體對象的數據保存(持續化)。比如將一張訂單保存到數據庫,從數據庫獲取訂單。我們可以將這個模型單獨 列出,所有有關數據庫的操作只限制在該模型中。控制(Controller)可以理解為從用戶接收請求,將模型與視圖匹配在

4、一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個分發器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求。控制層并不做任何的數據處理。例如,用戶點擊一個連接,控制層接受請求后,并不處理業務信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。因此,一個模型可能對應多個視圖,一個視圖可能對應多個模型。MVC的優點大部分用過程語言比如 ASP、PHP開發出來的Web應用,初始的開發模板就是混合 層的數據編程。例如,直接向數據庫發送請求并用HTML顯示,開發速度往往比較快,但由于數據頁面的分離不是很直接,因而很難體現出業務模型的樣子

5、或者模型的重用性。產品設計 彈性力度很小,很難滿足用戶的變化性需求。MVC要求對應用分層,雖然要花費額外的工作,但產品的結構清晰,產品的應用通過模型可以得到更好地體現。首先,最重要的是應該有多個視圖對應一個模型的能力。在目前用戶需求的快速變化下,可能有多種方式訪問應用的要求。例如,訂單模型可能有本系統的訂單,也有網上訂單,或者其他系統的訂單,但對于訂單的處理都是一樣,也就是說訂單的處理是一致的。按MVC設計模式,一個訂單模型以及多個視圖即可解決問題。這樣減少了代碼的復制,即減少了代碼的維護量,一旦模型發生改變,也易于維護。MVC設計模型其次,由于模型返回的數據不帶任何顯示格式,因而這些模型也可

6、直接應用于接口的使用。再次,由于一個應用被分離為三層,因此有時改變其中的一層就能滿足應用的改變。一個應用的業務流程或者業務規則的改變只需改動MVC的模型層。控制層的概念也很有效,由于它把不同的模型和不同的視圖組合在一起完成不同的請求, 因此,控制層可以說是包含了用戶請求權限的概念。最后,它還有利于軟件工程化管理。由于不同的層各司其職, 每一層不同的應用具有某些相同的特征,有利于通過工程化、工具化產生管理程序代碼。MVC的缺點MVC的設計實現并不十分容易,理解起來比較容易,但對開發人員的要求比較高。 MVC 只是一種基本的設計思想,還需要詳細的設計規劃。模型和視圖的嚴格分離可能使得調試困難一些,但比較容易發現錯誤。經驗表明,MVC由于將應用分為三層,意味著代碼文件增多,因此,對于文件的管理 需要費點心思。綜合上述,MVC是構筑軟件非常好的基本模式,至少將業務處理與顯示分離

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論