MVC、MVVM模式的概念與區別


1. MVC框架

MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典范,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。

 

1.1 MVC 編程模式

MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器)設計創建 Web 應用程序的模式: [1]

  • Model(模型)表示應用程序核心(如數據庫)。

  • View(視圖)顯示效果(HTML頁面)。

  • Controller(控制器)處理輸入(業務邏輯)。

MVC 模式同時提供了對 HTML、CSS 和 JavaScript 的完全控制。

Model(模型)是應用程序中用於處理應用程序數據邏輯的部分。
  通常模型對象負責在數據庫中存取數據。

View(視圖)是應用程序中處理數據顯示的部分。
  通常視圖是依據模型數據創建的。

Controller(控制器)是應用程序中處理用戶交互的部分。
  通常控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。

2.MVVM框架

MVVM是Model-View-ViewModel的簡寫。它本質上就是MVC 的改進版。MVVM 就是將其中的View 的狀態和行為抽象化,讓我們將視圖 UI 和業務邏輯分開。當然這些事 ViewModel 已經幫我們做了,它可以取出 Model 的數據同時幫忙處理 View 中由於需要展示內容而涉及的業務邏輯。微軟的WPF帶來了新的技術體驗,如Silverlight、音頻、視頻、3D、動畫……,這導致了軟件UI層更加細節化、可定制化。同時,在技術層面,WPF也帶來了 諸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由來便是MVP(Model-View-Presenter)模式與WPF結合的應用方式時發展演變過來的一種新型架構框架。它立足於原有MVP框架並且把WPF的新特性糅合進去,以應對客戶日益復雜的需求變化。

 

2.1 MVVM模式的組成部分

模型

  • 模型是指代表真實狀態內容的領域模型(面向對象),或指代表內容的數據訪問層(以數據為中心)。

視圖

  • 就像在MVC和MVP模式中一樣,視圖是用戶在屏幕上看到的結構、布局和外觀(UI)。

視圖模型

  • 視圖模型是暴露公共屬性和命令的視圖的抽象。MVVM沒有MVC模式的控制器,也沒有MVP模式的presenter,有的是一個綁定器。在視圖模型中,綁定器在視圖和數據綁定器之間進行通信。

綁定器

  • 聲明性數據和命令綁定隱含在MVVM模式中。在Microsoft解決方案堆中,綁定器是一種名為XAML的標記語言。綁定器使開發人員免於被迫編寫樣板式邏輯來同步視圖模型和視圖。在微軟的堆之外實現時,聲明性數據綁定技術的出現是實現該模式的一個關鍵因素。


3.MVVM框架與MVC框架的區別

mvc 和 mvvm 其實區別並不大。都是一種設計思想,主要區別如下:

1.mvc 中 Controller演變成 mvvm 中的 viewModel

2.mvvm 通過數據來驅動視圖層的顯示而不是節點操作。

3.mvc中Model和View是可以直接打交道的,造成Model層和View層之間的耦合度高。而mvvm中Model和View不直接交互,而是通過中間橋梁ViewModel來同步

4.mvvm主要解決了:mvc中大量的DOM 操作使頁面渲染性能降低,加載速度變慢,影響用戶體驗

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM