天天看點

MVC

mvc全名是model view controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟體設計典範,用一種業務邏輯、資料、界面顯示分離的方法組織代碼,将業務邏輯聚集到一個部件裡面,在改進和個性化定制界面及使用者互動的同時,不需要重新編寫業務邏輯。

模型 (model) 代表資料結構。通常來說,模型類将包含取出、插入、更新資料庫資料等這些功能。

視圖 (view) 是展示給使用者的資訊的結構及樣式。一個視圖通常是一個網頁,但是在go中,一個視圖也可以是一個頁面片段,如頁頭、頁尾。它還可以是一個 rss 頁面,或其它類型的“頁面”,go實作的template包已經很好的實作了view層中的部分功能。

控制器 (controller) 是模型、視圖以及其他任何處理http請求所必須的資源之間的中介,并生成網頁。

model指背景傳回的資料;view指需要渲染的頁面,通常是模闆頁面,渲染後的内容通常是html;controller指web開發人員編寫的處理不同url的控制器,controller在整個的mvc架構中起到了一個核心的作用,負責處理業務邏輯,是以控制器是整個架構中必不可少的一部分,model和view對于有些業務需求是可以不寫的,例如沒有資料處理的邏輯處理,沒有頁面輸出的302調整之類的就不需要model和view,但是controller這一環節是必不可少的。

dao層即model層,用于通路資料庫

service是業務層,dao是資料通路層,這樣的分層是基于mvc架構來說的,分層的主要作用是解耦。

對于spring這樣的架構,(view\web)表示層調用控制層(controller),控制層調用業務層(service),業務層調用資料通路層(dao)。

具體起來,dao的作用是封裝對資料庫的通路:增删改查,不涉及業務邏輯,隻是達到按某個條件獲得指定資料的要求;

而service,則是專注業務邏輯,對于其中需要的資料庫操作,都通過dao去實作。

參考:

1. 13.1 項目規劃  beego, go web程式設計

2. 13.3 controller設計

3. 總結一下mvc思想