1. 程式人生 > >MVC/MVP/MVVM 前端框架模式

MVC/MVP/MVVM 前端框架模式

簡單來講就是:

檢視(View):使用者介面

控制器(Controller):業務邏輯

模型(Model):資料儲存

使用者操作介面,View接受指令,View 傳送指令到 Controller,也就是從View層到Control層的箭頭所示

Controller 完成業務邏輯後,要求 Model 改變狀態,也就是從Control層到Model層的箭頭所示

Model 將新的資料傳送到 View,使用者得到反饋,也就是從Model層到View層的箭頭所示

Android中MVC模式的體現:

其實Android開發的主要流程都是MVC模式的,比如我們常見的Activity+Layout+Model展示業務邏輯的模式,其中:

Activity - 對應著Controller層,主要是控制層,用於實現業務邏輯

Layout - 對應著View層,主要用於展示頁面

Model - 對應著Model層,主要是儲存資料

MVC模式的優勢:

使用MVC模式降低了程式中的耦合度,使應用程式檢視層與Model層分離,減少了程式碼之間的相互影響;

由於使用MVC模式降低程式碼耦合度,因此可以很方便的擴充套件現有程式;

不同程式碼模組職責劃分明確,有利於程式碼的維護與升級;

MVP開發模式:

MVP開發模式是MVC模式一種進階,MVP和MVC模型的主要區別是model層與View層不再發生關係而是通過Presenter層作為中間的樞紐。並且各個部分之間都是雙向關聯的;

簡單來講就是:

檢視(View):使用者介面

控制層(Presenter):業務邏輯(負責與View層和Model層雙向互動)

模型(Model):資料儲存

       

使用者操作介面,View接收指令,View傳送指令到Presenter層,也就是從View層到Presenter層的箭頭所示

Presenter完成業務邏輯後,要求Model改變狀態,也就是從Presenter層到Model層的箭頭所示

Model狀態改變之後將結果返回給Presenter層,然後Presenter層在將結果反饋到View層,也就是從Model層到Presenter層,從Presenter層到View層的箭頭所示

在MVP裡,Presenter完全把Model和View進行了分離,主要的程式邏輯在Presenter裡實現。而且,Presenter與具體的View是沒有直接關聯的,而是通過定義好的介面進行互動,從而使得在變更View時候可以保持Presenter的不變。

MVP模式的優勢:

MPV開發模式與MVC開發模式有的優勢相似,都是降低了程式碼的耦合度

使用MVP模式View層與Model層不在相互關聯,可以更高效地使用模型,因為所有的互動都發生在一個地方——Presenter內部。

MVVM開發模式:(vuejs就是使用該種開發模式)

MVVM與MVP是相類似的,唯一的區別是,它採用雙向繫結(data-binding):View的變動,自動反映在 ViewModel,反之亦然(自動更新view層顯示)。

簡單來講就是:

檢視(View):使用者介面

控制層(VM):業務邏輯(負責與View層和Model層雙向互動)

模型(Model):資料儲存

使用者操作介面,View接收指令,View傳送指令到ViewModel

ViewModel完成業務,改變Model層資料

Model狀態改變之後將結果返回該ViewModel層,然後ViewModel層自動更新View層顯示