MVC開發模式 MVC開發模式和傳統開發模式的區別

 MVC模式簡介

MVC是一種架構型模式,它自己並不引入新的功能,只是用來指導咱們改善應用程序的架構,使得應用的模型和視圖相分離,從而獲得更好的開發和維護效率。html

       在MVC模式中,應用程序被劃分紅了模型(Model)、視圖(View)和控制器(Controller)三個部分。其中,模型部分包含了應用程序的業務邏輯和業務數據;視圖部分封裝了應用程序的輸出形式,也就是一般所說的頁面或者是界面;而控制器部分負責協調模型和視圖,根據用戶請求來選擇要調用哪一個模型來處理業務,以及最終由哪一個視圖爲用戶作出應答。java

MVC模式的這三個部分的職責很是明確,並且相互分離,所以每一個部分均可以獨立的改變而不影響其餘部分,從而大大提升了應用的靈活性和重用性。數據庫

  MVC模式基礎

在MVC模式中,一個應用被劃分紅了模型(Model)、視圖(View)和控制器(Controller)三個部分,接下來認識一下這三個部分。windows

1:首先看一下模型、視圖、控制器各部分的做用tomcat

  • 模型(Model):負責封裝應用的狀態,並實現應用的功能。一般又分爲數據模型和業務邏輯模型,數據模型用來存放業務數據,好比訂單信息、用戶信息等;而業務邏輯模型包含應用的業務操做,好比訂單的添加或者修改等。
  • 視圖(View):用來將模型的內容展示給用戶,用戶能夠經過視圖來請求模型進行更新。視圖從模型得到要展現的數據,而後用本身的方式展示給用戶,至關於提供界面來與用戶進行人機交互;用戶在界面上操做或者填寫完成後,會點擊提交按鈕或是以其它觸發事件的方式,來向控制器發出請求。
  • 控制器(Controller):用來控制應用程序的流程和處理視圖所發出的請求。當控制器接收到用戶的請求後,會將用戶的數據和模型的更新相映射,也就是調用模型來實現用戶請求的功能;而後控制器會選擇用於響應的視圖,把模型更新後的數據展現給用戶。

2:模型和視圖的關係服務器

在MVC中,模型和視圖是分離的,一般視圖裏面不會有任何邏輯實現;而模型也是不依賴於視圖的,同一個模型可能會有不少種不一樣的展現方式,也就是同一個模型能夠對應多種不一樣的視圖。架構

這種例子比比皆是,例如,在windows操做系統上瀏覽文件夾時,文件夾就那些,數據並無變化,可是展現方式就有多種,好比大圖標、小圖標、詳細信息等等多種展現方式。以tomcat7文件夾下的文件爲例,按照不一樣的展現方式,如圖1.1所示:app

 

 

 

MVC開發模式和傳統開發模式的區別

    Model1模式:使用純JSP或者JSP+JavaBean開發,存在以下缺陷:JSP頁面中混合了HTML和JAVA代碼,從而給代碼的開發和閱讀帶 來了麻煩;系統後期維護和擴展很是困難,例如在JSP頁面進行數據庫鏈接和操做,若是須要對數據庫進行任何修改,都必須打開全部操做數據庫的JSP頁面進 行相應的修改,當頁面很是多的時候,工做量至關大;系統不容易調試,因爲HTML、JAVA、JavaScript都混合在一塊兒,必需要啓動服務器並調用 JSP頁面才能查看運行效果。故此模式適合小規模的WEB應用開發。
     JSP+JavaBean開發,雖然實現了邏輯功能和顯示功能的分離,可是因爲視圖層和控制層都是由JSP頁面實現的,即視圖層和控制層沒有實現分離,因此它任然屬於Model1模式。post

Model2模式——MVC開發模式
   它是爲了克服Model1存在的不足而設計的,MVC的具體含義是:model+view+control,即模型+視圖+控制,這樣的模式集成了JSP、Serclet、JavaBean,很是適合大型項目的開發。url

View視圖層
  表明和用戶交互的界面,能夠經過html、xml、applet小java程序等實現,它僅僅負責數據的採集和處理(顯示)。在JSP中它由JSP頁面單獨實現。

Model模型層
   它經常使用JavaBean來編寫,它接受視圖層請求的數據,而後進行相應的業務處理並返回最終的處理結果,它負擔的責任最爲核心,並利用JavaBean具備的特性實現了代碼的重用和擴展以及給維護帶來了方便。

Control控制層
  控制層是從用戶端接收請求,而後將請求傳遞給模型層並告訴模型層應該調用什麼功能模塊來處理該請求,它將協調視圖層和模型層之間的工做,起到中間樞紐的做用,它通常交由Serclet來實現。

MVC開發模式與Model1模式比較,顯示出以下特色:(1)各層各負其責,互不干涉。各自更新以後對其它層沒有任何干擾;(2)MVC開發模式有利於責任分工,讓專門人員分別從事專門層的設計,提升工做效率和質量;(3)組件能夠獲得很好的重用,因爲分工明確,各層的組件能夠獨立成一個能夠重用的組件。   可是MVC開發模式相對Model1來講比較複雜,因此它比較適合開發大中型項目應用,而Model1模式適合小規模的WEB應用開發。

相關文章
相關標籤/搜索