1. 程式人生 > >模型-視圖-控制器模式

模型-視圖-控制器模式

ID 通知 control VC 輸入 let 服務器端 分組 custom

模型-視圖-控制器模式(Model View Controller)其實就是MVC模式,一個非常流行的設計模式。

MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器)設計創建 Web 應用程序的模式:

  • Model(模型)表示應用程序核心(比如數據庫記錄列表)。
  • View(視圖)顯示數據(數據庫記錄)。
  • Controller(控制器)處理輸入(寫入數據庫記錄)。
MVC 模式同時提供了對 HTML、CSS 和 JavaScript 的完全控制。 Model(模型)是應用程序中用於處理應用程序數據邏輯的部分。通常模型對象負責在數據庫中存取數據。 View(視圖)是應用程序中處理數據顯示的部分。通常視圖是依據模型數據創建的。 Controller(控制器)是應用程序中處理用戶交互的部分。
通常控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。 MVC 分層有助於管理復雜的應用程序,因為您可以在一個時間內專門關註一個方面。例如,您可以在不依賴業務邏輯的情況下專註於視圖設計。同時也讓應用程序的測試更加容易。 MVC 分層同時也簡化了分組開發。不同的開發人員可同時開發視圖、控制器邏輯和業務邏輯。

MVC模式使模型、視圖、控制器分離,使得一個模型可以有多種視圖。如果用戶通過某個視圖的控制器改變了模型的數據,所有其他依賴於這些數據的視圖都反映出這些變化。因此,無論何時發生了何種數據變化,控制器都會將變化通知給所有的視圖,導致數據的更新。這就是一種模型的變化的傳播機制。

典型的MVC框架模式就是JSP+servlet+Javabean模式。

對於Jsp來說:

Model層:實現系統的業務邏輯,即javaBean部分

View層:負責與用戶交互,即在界面上展示數據對象給用戶,即html,jsp

Control層:Model與View之間溝通的橋梁,它可以分派用戶的請求並選擇恰當的視圖以用於顯示,同時它也可以解釋用戶的輸入並將它們映射為模型層可執行的操作,當然就是Servlet的職責了。

MVC的優點:耦合性低,視圖層和業務層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,同樣,一個應用的業務流程或者業務規則的改變只需要改動MVC的模型層即可。因為模型與控制器和視圖相分離,所以很容易改變應用程序的數據層和業務規則。MVC模式允許使用各種不同樣式的視圖來訪問同一個服務器端的代碼,因為多個視圖能共享一個模型

模型-視圖-控制器模式