理解 MVC架構

2022-06-29 02:09:09 字數 2531 閱讀 7027

mvc架構

發表日期:2020.5.12

趙路倉摘要:mvc架構將業務邏輯聚集到乙個部件裡面,在改進和個性化定製介面及使用者互動的同時,不需要重新編寫業務邏輯。mvc被獨特的發展起來用於對映傳統的輸入、處理和輸出功能在乙個邏輯的圖形化使用者介面的結構中。

言mvc架構是模型(model)-檢視(view)-控制器(controller)的縮寫,是一種軟體設計典範。用一種邏輯、資料、介面相分離的思想組織**。具有耦合性低,重用性高,部署快等等優點。

模型、檢視與控制器的分離,使得乙個模型可以具有多個顯示檢視。如果使用者通過某個檢視的控制器改變了模型的資料,所有其它依賴於這些資料的檢視都應反映到這些變化。因此,無論何時發生了何種資料變化,控制器都會將變化通知所有的檢視,導致顯示的更新。這實際上是一種模型的變化-傳播機制。模型、檢視、控制器三者之間的關係和各自的主要功能

1) 最上面的一層,是直接面向終端使用者的"檢視層"(view)。它是提供給使用者的操作介面,是程式的外殼。

2) 最底下的一層,是核心的"資料層"(model),也就是程式需要操作的資料或資訊。

3) 中間的一層,就是"控制層"(controller),它負責根據使用者從"檢視層"輸入的指令,選取"資料層"中的資料,然後對其進行相應的操作,產生最終結果。

圖1:mvc架構圖例

model層

模型層簡單理解就是資料用於提供資料。就是業務流程/狀態的處理以及業務規則的制定。業務流程的處理過程對其它層來說是黑箱操作,模型接受檢視請求的資料,並返回最終的處理結果,業務模型的設計可以說是mvc最主要的核心。

而在專案中對資料庫的基本訪問可以視為乙個不可分割的最底層操作,換言之對資料庫資料的增刪改查可以放在model層。在**中我們會寫dao和dto型別的**,這個dao和dto可以理解為是model層的**。

1.view層

view層也叫做檢視層,對於乙個web應用來說,可以概括為html頁面,也可能是xhtml或xml、jsp等等一些可以用於介面展示的**。隨著應用的複雜性和規模性,介面的處理也變得更具有挑戰性,乙個應用也可能有不同的檢視,業務流程的處理交予模型(model)處理。比如乙個訂單的檢視只接受來自模型的資料並顯示給使用者,以及將使用者介面的輸入資料和請求傳遞給控制和模型。

2.controller層

controller可以理解為從使用者接受請求,將model層和view層匹配在一起,共同完成使用者的請求,他的作用也很明顯,很直白的告訴你他就是乙個分發器,選擇什麼樣的檢視,或者說完成什麼樣的請求,控制層並不做任何的資料處理。例如:乙個使用者點選乙個按鈕,控制層接受請求後,不處理業務資訊,只把使用者提供的資訊**給模型層,告訴模型需要做什麼,並選擇合適的檢視返回給使用者,因此乙個模型可能對應多個檢視,乙個檢視可能對應多個模型。

3.mvc架構特點

耦合性低:檢視層和業務層分離,這樣就允許更改檢視層**而不用重新編譯模型和控制器**,同樣,乙個應用的業務流程或者業務規則的改變只需要改動mvc的模型層即可。因為模型與控制器和檢視相分離,所以很容易改變應用程式的資料層和業務規則。

重用性高:隨著技術的不斷進步,需要用越來越多的方式來訪問應用程式。mvc模式允許使用各種不同樣式的檢視來訪問同乙個伺服器端的**,因為多個檢視能共享乙個模型,它包括任何web(http)瀏覽器或者無線瀏覽器。

4.案例

用student(學生)為例來演示mvc模式的用法:

圖2:student類圖

public

class

studentview

}

model層:

student

用以替代對資料庫的訪問操作

public

class

student

public

void

setrollno(string rollno)

public

string getname()

public

void

setname(string name)

}

contorller層:將model層和view層連線

public

class

studentcontroller

public

void

setstudentname(string name)

public

string getstudentname()

public

void

setstudentrollno(string rollno)

public

string getstudentrollno()

public

void

updateview()

}

MVC架構理解

m 模型model,理解成 資料 即可,可以是sql出來的資料。v 檢視view,一般就html 和json 兩種 c 控制器controller 活動actions 很多個action action 就是一次http 網路請求 就是乙個url 網域名稱 user adduser 網域名稱 user...

MVC架構的理解

我很早之前就開始接觸.net開發,一直都在2.0的框架下,所以對於mvc這種架構,聽說過,但沒有具體使用過,近期和外部朋友接觸時,有了解到他們公司在使用mvc這種架構,所以自己就找來相關資料了解一下mvc是什麼。mvc代表著 model view controller asp.net mvc是一種與...

三層架構與MVC 個人理解

三層架構主要分為表示層 ui 業務邏輯層 bll 以及資料訪問層 dal 三層架構主要是為了實現高內聚低耦合效果。主要是可以使得我們寫的 可以只關注於結構中的某一層,思路更加清晰,有利於 的復用性。例如我最近的寫的乙個專案中,當dal層寫好後,絕大部分情況都不需要對其進行修改,這種架構便於我們對於程...