本篇部落格打算簡單介紹一下mvc是什麼,為接下來寫一篇spring mvc和struts2的文章做一下鋪墊。
mvc是一種架構設計模式,是一種設計理念。是為了達到分層設計的目的,從而使**解耦,便於維護和**的復用。mvc是3個單詞的縮寫,全稱:model-view-controller(模型-檢視-控制器)。
舉乙個例子,mvc就好比我們的鞋櫃。當沒有鞋櫃的時候,鞋子是這樣擺放的:
有了鞋櫃之後,我們的鞋子是這樣擺放的:
一眼就能看出,有了鞋櫃之後,鞋子的擺放明顯的整齊和有序很多,這樣也很方便我們找到自己想穿的鞋子,不用將大量的時間花在尋找鞋子上。如果把我們的成千上萬行**和各種複雜的業務邏輯看作是各式各樣的鞋子,那我們的mvc就是鞋櫃。mvc讓你的**結構更加清晰明了。
沒有使用mvc的時候,我們的**結構如下:
上圖那一坨「剪不斷、理還亂」的亂麻就是你沒有使用分層設計的**結構。如果這時讓你找你**中的某一段邏輯估計是很費勁的,更別說將**中的某一段**進行復用或者替換了。
使用mvc分層設計之後,我們的**結構如下:
上面的圖示可能有點誇張,但是這樣可能更好的理解。mvc其實就是提供一種規則,讓你把相同型別的**放在一起,這樣就形成了層次,從而達到分層解耦、復用、便於測試和維護的目的。
以上說了一堆,其實就是想讓大家理解mvc是什麼,有什麼作用。接下來,我們結合我們實際開發中的**型別來解釋一下mvc。
1、model
模型層,可以簡單理解就是資料層,用於提供資料。在專案中,(簡單理解)一般把資料訪問和操作,比如將物件關係對映這樣的**作為model層,也就是對資料庫的操作這一些列的**作為model層。比如**中我們會寫dao和dto型別的**,那這個dao和dto我們可以理解為是屬於model層的**。
2、view
檢視層,就是ui介面,用於跟使用者進行互動。一般所有的jsp、html等頁面就是view層。
3、controller
控制層,controller層的功能就是將model和view層進行關聯。比如view主要是顯示資料的,但是資料又需要model去訪問,這樣的話,view會先告訴controller,然後controller再告訴model,model請求完資料之後,再告訴view。這樣view就可以顯示資料了。如下圖:
關於spring mvc和struts,與mvc的關係:
大家還記得在上面我舉過的乙個例子,mvc好比鞋櫃。那spring和struts2只是不同牌子的鞋櫃而已。並且spring mvc和struts2只是乙個協助程式設計師更好實現mvc分層架構的框架而已。就是說,我們實現mvc不一定非要使用spring或者struts2,自己按照mvc的理解,自己完成自己**的分層也行。就好比自己在家用木棍自己製作乙個鞋櫃也照樣可以把鞋子擺放整齊,當然,這樣做的話首先要你有這樣的乙個木工技術。我們沒有必要為了乙個鞋櫃,還要自己去學習木工技術,所以最好最快的方式就是去超市買乙個鞋櫃。
我們直接使用spring mvc或者struts2來實現mvc,就是我們直接使用別人做好的東西,直接用。快捷、省時、省事、而且***。
最後:其實現在除了mvc架構之外,還有mvp、mvvm等。
在實際專案中mvc更好的實現應該還多乙個service層,用來處理業務邏輯。如下:
其中多出來的service層,主要是用來處理複雜的業務邏輯,這樣結構層次更加鮮明和簡介。
MVC模式簡介
mvc模式 是model view control的簡稱,即模型 檢視 控制器,他是乙個存在與伺服器表達層的模型,他將應用分開,改變了應用之間的高度耦合。mvc 模式將應用分為模型 檢視和控制器三個部分 1.檢視 資料的展現。檢視是使用者看到並與之互動的介面。檢視向使用者顯示相關的資料,並能接收使用...
MVC結構簡介
本文編譯自j2ee的相關文件。mvc model view controller 應用程式結構被用來分析分布式應用程式的特徵。這種抽象結構能有助於將應用程式分割成若干邏輯部件,使程式設計變得更加容易。mvc結構提供了一種按功能對各種物件進行分割的方法 這些物件是用來維護和表現資料的 其目的是為了將各...
MVC結構簡介
本文編譯自j2ee的相關文件。mvc model view controller 應用程式結構被用來分析分布式應用程式的特徵。這種抽象結構能有助於將應用程式分割成若干邏輯部件,使程式設計變得更加容易。mvc結構提供了一種按功能對各種物件進行分割的方法 這些物件是用來維護和表現資料的 其目的是為了將各...