MTV和MVC的區別

在 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 層更專注於實現業務邏輯。

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