1. 程式人生 > >什麼是MVC設計模式,為什麼使用MVC?

什麼是MVC設計模式,為什麼使用MVC?

MVC

全稱Model(模型)-View(檢視)-Controller(控制器),這是一種開發模式,他的好處是可以將介面和業務邏輯分離。

    Model(模型),是程式的主體部分,主要包含業務資料和業務邏輯。在模型層,還會涉及到使用者釋出的服務,在服務中會根據不同的業務需求,更新業務模型中的資料。

     View(檢視),是程式呈現給使用者的部分,是使用者和程式互動的介面,使用者會根據具體的業務需求,在View檢視層輸入自己特定的業務資料,並通過介面的事件互動,將對應的輸入引數提交給後臺控制器進行處理。

     Controller(控制器)Controller是用來處理使用者輸入資料,已經更新業務模型的部分。控制器中接收了使用者與介面互動時傳遞過來的資料,並根據資料業務邏輯來執行服務的呼叫和更新業務模型的資料和狀態。

MVC的處理過程:首先控制器接受使用者的請求,呼叫相應的模型來進行業務處理,並返回資料給控制器。控制器呼叫相應的檢視來顯示處理的結果。並通過檢視呈現給使用者。實現人機資料之間的互動;

搞清楚MVC到底都代表什麼之後,我們要考慮的是我們為什麼要用MVC或是類似於這種模式的架構思想:

      1.各施其職,互不干涉

在MVC模式中,三個層各施其職,所以如果一旦哪一層的需求發生了變化,就只需要更改相應的層中的程式碼而不會影響到其它層中的程式碼。

2.有利於開發中的分工

在MVC模式中,由於按層把系統分開,那麼就能更好的實現開發中的分工。網頁設計人員可以進行開發檢視層中的JSP,對業務熟悉的開發人員可開發業務層,而其它開發人員可開發控制層。

3.有利於元件的重用

分層後更有利於元件的重用。如控制層可獨立成一個能用的元件,檢視層也可做成通用的操作介面。

目前,像Spring、hibernate等主流框架,都是遵照著MVC設計模式而設計的。

hibernate:是底層基於jdbcorm(物件關係對映)持久化框架,即:表與類的對映,欄位與屬性的對映,記錄與物件的對映資料庫模型也就是Model;

 struts :提供的豐富標籤是用於顯示層View;同時struts也充當了實現Control的功能(不管是Struts1,還是Struts2),接收引數,檢視分發。

 Spring:是用於降低層與層間耦合度的,就是所有的類都可以由spring

統一建立,用時只需注入即可(IOC)

另外:SpringMVC就是在MVC的技術上實現自己的功能的。

總結:程式設計使用MVC等設計模式,最終目的就是達到天人合一的高內聚,低耦合,甚至零耦合!

相關推薦

設計模式 mvc 模型視圖控制器模式(8)

== 器) urn indexer 分層 myself all 模型 log MVC 模式代表 Model-View-Controller(模型-視圖-控制器) 模式。這種模式用於應用程序的分層開發。 Model(模型) - 模型代表一個存取數據的對象或 JAVA P

什麼是MVC設計模式為什麼使用MVC

MVC 全稱Model(模型)-View(檢視)-Controller(控制器),這是一種開發模式,他的好處是可以將介面和業務邏輯分離。     Model(模型),是程式的主體部分,主要包含業務資

MVC設計模式MVC架構的區別

mvc設計模式和mvc框架的區別 一組概念需要先理解,因為後面需要用: **架構:**簡單的說架構就是一個藍圖,是一種設計方案,將客戶的不同需求抽象成為抽象元件,並且能夠描述這些抽象元件之間的通訊和呼叫。 **框架:**軟體框架是專案軟體開發過程中提取特定領域軟體的共性部分形成的體系結構,不

j2EE學習之mvc設計模式mvc框架的區別

看了百度百科之後,額MVC到底是個神魔東西啊,是設計模式還是框架,值得探究一下 框架和設計模式的區別 有很多程式設計師往往把框架模式和設計模式混淆,認為MVC是一種設計模式。實際上它們完全是不同的概念。 [7] 框架、設計模式這兩個概念總容易被混淆,其實它們之間還是有區

mvc設計模式mvc框架的區別!!!

架構:簡單的說架構就是一個藍圖,是一種設計方案,將客戶的不同需求抽象成為抽象元件,並且能夠描述這些抽象元件之間的通訊和呼叫。   框架:軟體框架是專案軟體開發過程中提取特定領域軟體的共性部分形成的體系結構,不同領域的軟體專案有著不同的框架型別。框架不是現成可用的應用系統。而

Java——Web開發之開源框架DBUtils的使用JSP開發模式三層架構與MVC設計模式的認識

DBUtils的使用: 在使用開源框架DBUtils時,它只是幫我們簡化了CRUD的程式碼,但是它不負責連線的建立以及獲取工作。 1.和使用開源框架都一樣的一個步驟,先匯入jar檔案 2.在這裡採用的是開源資料庫連線池C3P0進行連線 3.編寫CRUD程式碼 使用其功

Swift之旅:2.完成計算器初探MVC設計模式

斯坦福大學公開課:iOS8 github上字幕連結:字幕 百度網盤資源下載連結:百度網盤 1.計算器完成 ①回車鍵及相關的程式碼 //定義一個數組,用來當做棧儲存資料使用 var openStack = Array<Double>

MVC設計模式在網站中的應用

設計 分享 階段 可用性 狀態 代碼 img 多個 如果 MVC設計模式在網站中的應用 以淘寶的購物車為例 一、結合六個基本質量屬性 可修改性 采用MVC設計模式的時候,可以將視圖、模型、控制器分析,將用戶動作、數據表示、應用數據分離開來,如果用戶需要以不同的視圖來展示,只

[Java][Web]Request 實現轉發和 MVC 設計模式

寫入 頁面 str quest 表示 請求轉發 但是 write att String data = "aaaaa"; request.setAttribute("data",data); // 將數據存在 request request.getRequestDispat

Java-MVC設計模式

客戶 image family control java mvc span 胖客戶端 jpg JavaWeb開發模式 C/S:客戶端 / 服務器 (胖客戶端) B/S:瀏覽器 / 服務器 (瘦客戶端) JavaBean: 就是一個普通類(實體bean),包

MVC設計模式

曲線 互動 關心 可用性 pan 多個 競爭對手 可維護 data- 在界面框架中,使用MVC的設計模式是最合適方式。為什麽這樣說呢?由於M是model的縮寫,就是表示模型意思。模型就是算法,業務邏輯。商業表示。這個是常常會變的,比方像銀行開發一個超市積分系統,對不同來

Qt MVC設計模式(五篇)

net details blog 模式 mvc設計模式 sdn .net 設計 mvc http://blog.csdn.net/qq_19672579/article/details/46952675http://blog.csdn.net/qq_19672579/art

Android與MVC設計模式

wikipedia 數據模型 後來 small 事先 wiki 兩個 修改 idt 寫在前面,之前做過一段時間移動開發,後來因為工作原因擱淺了,最新重新拿起Android權威編程指南學習,順道做個學習筆記。 首先呢,我想說無論是計算機科班出身還是培訓班出身,都聽說過高內聚

MVC設計模式用於用戶註冊表單提交到數據庫的中文亂碼問題

def tail post str fix clear trac csdn rfi 本文引用自:http://blog.csdn.net/wangchangshuai0010/article/details/12714575 java.sql.SQLException: I

MVC設計模式的優缺點

宋體 ont mil 優點 控制器 實現 family font pan 1)優點: 各司其職、互不幹涉; 有利於開發中的分工; 有利於組建的重用; 2)缺點: 系統結構和實現復雜; 視圖與控制器過於緊密; 不適用於小型甚至中型應用程序;MVC設計模式的優缺點

MVC設計模式-學習筆記

MVC設計模式-學習筆記1)如果嚴格按照MVC思想的話,瀏覽器首頁訪問的是控制器,然後再由控制器轉發到視圖2)位於WEB-INF/目錄下的資源,客戶端無法直接訪問,只能通過服務端轉發進入3)request對象也可用於資源的轉發request.getRequestDispatcher("/WEB-IN

javaweb三大框架和MVC設計模式

detail struts2 萬能 sdn 發的 struts 其他 article 改進 javaweb三大框架和MVC設計模式 轉載,原文請見https://blog.csdn.net/sunpeng19960715/article/details/50890705 一

設計模式MVC模式

vat author nbsp 執行 獲取 gets inter 因此 ota MVC模式代表 Model-View-Controller(模型-視圖-控制器) 模式。這種模式用於應用程序的分層開發。 MVC模式的這三個部分的職責非常明確,而且相互分離,因此每個部分都可以獨

我理解的軟體 架構模式MVC和分層

一、緣起     作為程式設計師,很容易天天被業務追逐著,抽不開時間修煉。有一天突然停了一下,忽地就會有一種悵然的感覺,過去的那些日子我學到了什麼? 有人很認真地說自己有10年經驗,有人笑說你不過是一年經驗用了10年而已。 二、師傅領進門 做人,做事,做架構

MyEclipse下用struts框架實現MVC設計模式

 MyEclipse下用struts框架實現MVC設計模式 環境配置 Ø JDK 5.0 Ø Eclipse 3.2 Ø MyEclipse 5