在 Web 開發領域還有另外一個非常著名的設計模式——MVC,它和 MTV 又有什麼區別呢?
MVC設計模式
我們先對 MVC 設計模式進行介紹,它是 Web 設計模式的經典之作,MTV 模式也是在它的基礎上衍生而來。
MVC 是 Model-View-Controller 的縮寫,其中每個單詞都有其不同的含義:
- Modle 代表數據存儲層,是對數據表的定義和數據的增刪改查;
- View 代表視圖層,是系統前端顯示部分,它負責顯示什麼和如何進行顯示;
- Controller 代表控制層,負責根據從 View 層輸入的指令來檢索 Model 層的數據,並在該層編寫代碼產生結果並輸出。
MVC 設計模式的請求與響應過程描述如下: - 用戶通過瀏覽器向服務器發起 request 請求,Controller 層接受請求後,同時向 Model 層和 View 發送指令;
- Mole 層根據指令與數據庫交互並選擇相應業務數據,然後將數據發送給 Controller 層;
- View 層接收到 Controller 的指令後,加載用戶請求的頁面,並將此頁面發送給 Controller 層;
- Controller 層接收到 Model 層和 View 層的數據後,將它們組織成響應格式發送給瀏覽器,瀏覽器通過解析後把頁面展示出來。
MVC 的 3 層之間緊密相連,但又相互獨立,每一層的修改都不會影響其它層,每一層都提供了各自獨立的接口供其它層調用,MVC 的設計模式降低了代碼之間的耦合性(即關聯性),增加了模塊的可重用性,這就是 MVC 的設計模式。
MTV設計模式
MTV 設計模式它也將交互的過程分爲了 3 個層次
- Model:數據存儲層,處理所有數據相關的業務,和數據庫進行交互,並提供數據的增刪改查;
- Template:模板層(也叫表現層)具體來處理頁面的顯示;
- View:業務邏輯層,處理具體的業務邏輯,它的作用是連通Model 層和 Template 。
我們按照 MVC 的設計模式對 MTV 進行分析,MTV 設計模式中,用 View 層取代了 Controller 層的位置,用 Template 層取代了原來 View 層的位置。
同樣我們也對 MTV 設計模式的請求與響應過程進行描述:
- 用戶通過瀏覽器對服務器發起 request 請求,服務器接收請求後,通過 View 的業務邏輯層進行分析,同時向 Model 層和Template 層發送指令;
- Mole 層與數據庫進行交互,將數據返回給 View 層;
- Template 層接收到指令後,調用相應的模板,並返回給 View 層;
- View 層接收到模板與數據後,首先對模板進行渲染(即將相應的數據賦值給模板),然後組織成響應格式返回給瀏覽器,瀏覽器進行解析後並最終呈現給用戶。
通過以上兩種設計模式的比較, 我們可以得出 MTV 是 MVC 的一種細化,將原來 MVC 中的 V 層拿出來進行分離,視圖的顯示與如何顯示交給 Template 層,而 View 層更專注於實現業務邏輯。