重新認識 MVC 和 三層設計模式

重新認識 MVC 和 三層設計模式

首先不得不承認,身邊有一羣8年+工作經驗的大牛就是爽,糾正了我一個認知上的錯誤

首先來看一下官方的解釋:

MVC:
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典範,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件裏面,在改進和個性化定製界面及用戶交互的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。
MVC圖
三層架構設計模式:
1. 表現層(UI):通俗講就是展現給用戶的界面,即用戶在使用一個系統的時候他的所見所得。
2. 業務邏輯層(BLL):針對具體問題的操作,也可以說是對數據層的操作,對數據業務邏輯處理。
3. 數據訪問層(DAL):該層所做事務直接操作數據庫,針對數據的增添、刪除、修改、更新、查找等。

我想說的是,因爲老師夜以繼日對我講,MVC三層模式,從而導致我將這兩個東西搞混了。所以現在我來重新理解下。

簡單的說:
- MVC 是應用在三層架構模式中表現層裏面的一種軟件設計規範,它只存在於表現層,它不是一種架構設計規範!在表現層的設計還有 MVVM,MVP等,在這裏的model,應該理解爲viewModel,view就是web界面,controller則是頁面請求的邏輯處理
- 三層架構設計是一種架構設計方案,相對來說理解起來比較簡單,但需要注意的是,實體模型並不能算作是一個層

具體的理解畫一個圖吧

MVC 三層模式圖解

然後稍微的說一下MVVM和MVP

MVVM: 主要用來做 WPF
MVP: MVP和MVC很像,但是有點區別。在MVP中View並不直接使用Model,它們之間的通信是通過Presenter (MVC中的Controller)來進行的,所有的交互都發生在Presenter內部,而在MVC中View會直接從Model中讀取數據而不是通過 Controller。
在MVC裏,View是可以直接訪問Model的!從而,View裏會包含Model信息,不可避免的還要包括一些業務邏輯。 在MVC模型裏,更關注的Model的不變,而同時有多個對Model的不同顯示,即View。所以,在MVC模型裏,Model不依賴於View,但是View是依賴於Model的。不僅如此,因爲有一些業務邏輯在View裏實現了,導致要更改View也是比較困難的,至少那些業務邏輯是無法重用的。

其實今天還學了下 依賴注入的一些東西,很深奧,有空再說吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章