MVP MVVM和MVC的理解

2021-09-25 14:43:52 字數 1660 閱讀 2842

mvp

是指 model(模型)、view(檢視)、presenter(表示器)。

是 mvc 模式的一種衍生模式,專注於改進表示邏輯。

與 mvc 不同,來自 view 的呼叫將委託給 presenter(表示器),表示器通過介面與 view 對話。

mvp 中的 view 是被動的,裡面包含一點**邏輯或者零邏輯,我們專業的說:這個view 是很輕的。

mvp 的原理:view 進行請求,表示器執行任何與使用者請求有關的工作,並將資料回送給它們。表示器檢索資料並且運算元據,並且確定應該如何在 view 中顯示這些資料。model 模型改變時,是表示器收到通知,然後更新 view,因此表示器要訂閱 model。在這種模式中,沒有直接資料繫結的概念了。

具有非常複雜的 view 和大量使用者互動的應用程式可能不適合 mvc 模式,因為這樣會依賴多個控制器。但是在 mvp 中,所有這些複雜的邏輯可以封裝在乙個表示器中,這可以大大簡化維護工作。

backbone 既可以理解成 mvc 模式,也可以理解成 mvp 模式,我們暫且把 backbone 歸結為 mv* 模式。

mvvm

是指 model(模型)、view(檢視)、viewmodel(檢視模型)。

mvvm 模式有兩種實現方式(雙向繫結):

將【模型】轉化成【檢視】,即將後端傳遞的資料轉化成所看到的頁面。實現的方式是:資料繫結

將【檢視】轉化成【模型】,即將所看到的頁面轉化成後端的資料。實現的方式是:dom 事件監聽

是指model(模型)、view(檢視)、controller(控制器)。

使用 mvc 的目的就是將 m 和 v 的**分離。

mvc 是單向通訊。也就是 view 跟 model,必須通過 controller 來承上啟下。

mvc 和 mvvm 的區別並不是 vm 完全取代了 c,viewmodel 存在目的在於抽離 controller 中展示的業務邏輯,而不是替代 controller,其它檢視操作業務等還是應該放在 controller 中實現。也就是說mvvm 實現的是業務邏輯元件的重用

總結:mvp和mvvm都是mvc的衍生品

在mvc中,view位於架構之上,與controller相鄰,model位於controller之下,因此view了解controller,controller了解model。view可以直接訪問model。

在mvp中,controller的作用被presenter所替代。表示器與view位於同一位置,表示器監聽view和model的事件。

在mvvm中,我們可以建立model特定於view的子集,也就是說,我們無需向view暴露整個model。view可以繫結到viewmodel上的屬性,而屬性會將model所包含的資料暴露給view。

mvc,mvp 和 mvvm 的圖示

MVC和MVP的初步理解

mvc model view controller 模式,即模型 檢視 控制器模式,其核心思想是將整個程式 分成相對獨立而又能協同工作的3個組成部分,具體的功能如下 模型 model 業務邏輯層。實現具體的業務邏輯 狀態管理的功能。檢視 view 表現層。就是與使用者實現互動的頁面,通常實現資料的輸...

MVC以及JDBC的理解和應用

c即controller控制器主要負責人機互動,呼叫業務邏輯。m即model模型進行業務邏輯判斷,對資料庫進行增刪查改。v即view檢視負責將處理結果直觀的顯示給使用者。三者間的相互關係如下 book類 public class book public void setid int id publi...

對MVC的理解

下面的內容基本是摘錄自 也加入了自己的理解和想法。contorller指的是控制器,主要負責與model和view打交道。換句話說,model和view之間一般不直接打交道,他們老死不相往來。view中不會對model作任何操作,model不會輸出任何用於表現的東西,如html 等。這倆甩手不幹了,...