MVC模式

            MVC模式html

  • MVC模式的概念

MVC模式的全稱是Model View Controller,是模型(Model)-視圖(View)-控制(Controller)的縮寫,它是一種軟件設計的典範,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯彙集到一個部件裏面,在改進和個性化定製界面及用戶交互的同時,不須要從新編寫業務邏輯。java

 

 

  • MVC模式的由來

MVC模式是是Xerox PARC在二十世紀八十年代爲編程語言Smalltalk-80發明的一種軟件設計模式,而由於smalltalk語言和Java語言有不少類似性,都是面嚮對象語言,後來被推薦爲Oracle旗下Sun公司Java EE平臺的設計模式,而且受到愈來愈多的使用ColdFusion和PHP的開發者的歡迎。MVC模式的目的是實現一種動態的程序設計,使後續對程序的修改和擴展簡化,而且使程序某一部分的重複利用成爲可能。數據庫

  • MVC模式的三個組成部分的詳細介紹

1.Model(模型層)編程

這一層封裝的是一系列的實體類,用於封裝業務邏輯和數據模型,一般對應這一層中的實體類對應於數據庫中相應的表,而咱們作的一些j2ee的網站所操做的對象就封裝成實體放在這一層中。這也是MVC核心之所在。設計模式

2.View(視圖層)瀏覽器

這一層主要是指用於和用戶進行交互的界面,用戶能夠經過這一層來對數據進行一些增刪改查的操做,在咱們所編寫的網站程序中,這一層一般對應的是jsp,asp,html等用於進行前臺頁面表現的數據層。服務器

3.Controller(控制器層)架構

這一層是處理用戶操做,對用戶在視圖層進行的操做進行接收,並經過相應的業務邏輯,完成對model層中數據的增刪改查,更新數據庫的數據。框架

  • MVC的具體應用

 

 

應用MVC模式最典型就是j2ee中的 jsp + servlet +javaBean。它使應用程序的輸入、處理和輸出分開,下降程序的耦合性,增長了程序複用性。 jsp

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

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

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

  • MVC 模式的優缺點

優勢:

1.下降耦合性

視圖層和業務層分離,這樣就容許更改視圖層代碼而不用從新編譯模型和控制器代碼,一樣,一個應用的業務流程或者業務規則的改變只須要改動MVC的模型層便可。由於模型與控制器和視圖相分離,因此很容易改變應用程序的數據層和業務規則。

2.可重用性提升

隨着技術的不斷進步,須要用愈來愈多的方式來訪問應用程序。MVC模式容許使用各類不一樣樣式的視圖來訪問同一個服務器端的代碼,由於多個視圖能共享一個模型,它包括任何WEB(HTTP)瀏覽器或者無線瀏覽器(wap),好比,用戶能夠經過電腦也可經過手機來訂購某樣產品,雖然訂購的方式不同,但處理訂購產品的方式是同樣的。因爲模型返回的數據沒有進行格式化,因此一樣的構件能被不一樣的界面使用。

3.可維護性高

分離視圖層和業務邏輯層也使得WEB應用更易於維護和修改。

缺點:

1.沒有明確的定義

沒有一家公司敢說本身的MVC是最標準的,MVC只是一種模式,並無明確的定義。

2.不適合小型、中等規模的程序

花費大量時間將MVC應用到規模並非很大的應用程序一般會得不償失。

3.增長系統結構和實現的複雜性

對於簡單的界面,嚴格遵循MVC,使模型、視圖與控制器分離,會增長結構的複雜性,並可能產生過多的更新操做,下降運行效率。

  • 基於MVC的框架

Struts2:Struts2是一個基於MVC設計模式的Web應用框架,它本質上至關於一個servlet,在MVC設計模式中,Struts2做爲控制器(Controller)來創建模型與視圖的數據交互。Struts 2是Struts的下一代產品,是在 struts 1和WebWork的技術基礎上進行了合併的全新的Struts 2框架。其全新的Struts 2的體系結構與Struts 1的體系結構差異巨大。Struts 2以WebWork爲核心,採用攔截器的機制來處理用戶的請求,這樣的設計也使得業務邏輯控制器可以與ServletAPI徹底脫離開,因此Struts 2能夠理解爲WebWork的更新產品

SpringMVC:Spring MVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裏面。Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,能夠選擇是使用內置的 Spring Web 框架還能夠是 Struts 這樣的 Web 框架。經過策略接口,Spring 框架是高度可配置的,並且包含多種視圖技術,例如 JavaServer Pages(JSP)技術、Velocity、Tiles、iText 和 POI。Spring MVC 框架並不知道使用的視圖,因此不會強迫您只使用 JSP 技術。Spring MVC 分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離讓它們更容易進行定製

相關文章
相關標籤/搜索