1. 河豚號 > 生活百科 >

mvp開發(fā)模式是什么意思(半分鐘了解mvp模式)

MVC 模式

Model-View-Controller ,模型-視圖-控制器模式

Model:針對業(yè)務(wù)模型,建立的數(shù)據(jù)結(jié)構(gòu),Model 與 View 無關(guān),而與業(yè)務(wù)有關(guān)。

View:Android 中一般采用 XML 文件描述。

Controller:Android 中通常在 Activity,F(xiàn)ragment 中處理。

MVC 整體的實(shí)現(xiàn)過程可以概括為:

Controller 來操作 Model并將結(jié)果返回給 View 展示

 

簡單圖解 MVP、MVC 、MVVM 模式

 

一圖勝前言.png

從圖上可以看出 MVC 模式的缺點(diǎn)是 View 定義不夠清晰,xml 文件屬于 View 但是 Activity 、Fragment 中也有 View 的操作,為了解決這個問題,因此出現(xiàn)了 MVP 模式。

MVP 模式

Model-View-Presenter,是 MVC 的演化版本。

Model:主要提供數(shù)據(jù)的存取功能

View:Android 中一般是 Activity,F(xiàn)ragment,xml 文件

Presenter:作為 View 和 Model 之間的橋梁。

MVP 整體的實(shí)現(xiàn)過程可以概括為:

Model 定義好存取接口,Presenter 通過接口調(diào)用 Model 中的接口獲取到結(jié)果,最后通過 View 接口去展示具體 View

 

簡單圖解 MVP、MVC 、MVVM 模式

 

image.png

從上圖可以看出 MVP 解決了 MVC 中 View 定義不清晰的問題,同時(shí)劃清了 Model 和 View 的界限,View 不能直接訪問 Model,Model 也是不能直接訪問 View。

MVP 的處理大部分都是通過接口去實(shí)現(xiàn)的,這也會導(dǎo)致代碼的邏輯層級較深,所以又出現(xiàn)了一個架構(gòu)模式 MVVM。

MVVM 模式

了解的不是很深入,寫的可能有誤,參考即可。

Model-View-ViewModel,和 MVP 類似,但是使用 ViewModel 替換了 Presenter 。

ViewModel :View 和 Model雙向綁定,View 發(fā)生改變后 ViewModel 會通知 Model 跟隨改變,同理 Model 改變 ViewModel 也會通知 View 跟隨改變。

 

簡單圖解 MVP、MVC 、MVVM 模式

 

image.png

MVVM 雖然解決了 MVP 中代碼層級深度過深問題,但是需要使用 DataBinding,代碼層面也不易理解。

假裝總結(jié)一下

在實(shí)際開發(fā)中,采用 MVP 模式已經(jīng)足夠了,雖然類文件會變多一些,但是能夠降低代碼之間的偶爾同時(shí)便于維護(hù),這就夠了。

對于 MVP 的學(xué)習(xí),入門例子推薦 谷歌 GitHub 上的 TODO-MVP 例子。

如果想深入可以再把 TODO 系列看完,聽說 MVP + RxJava + Dagger2 很香?

本文由網(wǎng)上采集發(fā)布,不代表我們立場,轉(zhuǎn)載聯(lián)系作者并注明出處:http://m.zltfw.cn/shbk/40640.html

聯(lián)系我們

在線咨詢:點(diǎn)擊這里給我發(fā)消息

微信號:15705946153

工作日:9:30-18:30,節(jié)假日休息