MVC、MVP、MVVM區別| 8月更文挑戰

MVC、MVP、MVVM這些模式是爲了解決開發過程當中的實際問題而提出來的,目前做爲主流的幾種架構模式而被普遍使用。前端

1、MVC

MVC是比較直觀的架構模式,它主要分爲如下三部分:markdown

-   模型(Model):數據保存
-   視圖(View):用戶界面
-   控制器(Controller):業務邏輯
複製代碼

它的操做流程爲:用戶操做-->View(負責接收用戶的輸入操做)-->Controller(業務邏輯處理)-->Model(數據持久化)-->View(將結果反饋給View)。MVC全部通訊過程都是單向的。架構

mvc.png

2、MVP

MVP 模式將 Controller 更名爲 Presenter(呈現),同時改變了通訊方向。它切斷View跟Model之間的聯繫,由Presenter充當橋樑,作到View-Model之間通訊的徹底隔離,而其餘各部分的的通訊是雙向的。mvc

mvp.png

3、MVVM

MVVM 模式將 Presenter 更名爲 ViewModel,基本上與 MVP 模式徹底一致。它是將「數據模型數據雙向綁定」的思想做爲核心,所以在View和Model之間沒有聯繫,經過ViewModel進行交互,並且Model和ViewModel之間的交互是雙向的,所以視圖的數據的變化會同時修改數據源,而數據源數據的變化也會當即反應到View上。dom

傳統的前端會將數據手動渲染到頁面上, MVVM 模式不須要用戶收到操做 dom 元素,將數據綁定到 viewModel 層上,會自動將數據渲染到頁面中,視圖變化會通知viewModel層 更新數據。mvvm

mvvm.png

區別:

一、對於MVP與MVC的話,在MVP中View並不直接使用Model,它們之間的通訊是經過Presenter (MVC中的Controller)來進行的,全部的交互都發生在Presenter內部,而在MVC中View會直接從Model中讀取數據而不是經過 Controller。spa

二、而對於MVP和MVVM惟一的區別是,MVVM採用雙向綁定(data-binding):View的變更,自動反映在 ViewModel。雙向綁定

相關文章
相關標籤/搜索