MVC與MVP架構(gòu)特點(diǎn)與區(qū)別-android

1.MVP模式(Model-View-Presenter)是MVC模式的一個(gè)衍生。主要目的是為了解耦,使項(xiàng)目易于維護(hù)。

Model 依然是業(yè)務(wù)邏輯和實(shí)體模型

View 經(jīng)常由Activity實(shí)現(xiàn),包含Presenter的引用。所要做的就是當(dāng)有交互時(shí),調(diào)用Presenter里的對(duì)應(yīng)方法。

Presenter 負(fù)責(zé)完成View于Model間的交互,從Model里取數(shù)據(jù),返回給View處理好的數(shù)據(jù)。

mvc介紹:

Model 是應(yīng)用程序中用于處理應(yīng)用程序數(shù)據(jù)邏輯的部分。

View 是應(yīng)用程序中處理數(shù)據(jù)顯示的部分。

Controller是應(yīng)用程序中處理用戶交互的部分。

比較

MVP模式:

View不直接與Model交互 ,而是通過(guò)與Presenter交互來(lái)與Model間接交互

Presenter與View的交互是通過(guò)接口來(lái)進(jìn)行的,更有利于添加單元測(cè)試

通常View與Presenter是一對(duì)一的,但復(fù)雜的View可能綁定多個(gè)Presenter來(lái)處理邏輯

MVC模式:

View可以與Model直接交互

Controller是基于行為的,并且可以被多個(gè)View共享

可以負(fù)責(zé)決定顯示哪個(gè)View

mvp的核心優(yōu)勢(shì)是實(shí)現(xiàn)了view和model 的完全解耦,更改ui界面并不影響model,但是presenter持有view的引用,容易造成內(nèi)存泄漏,所以在使用時(shí)要使用弱引用,來(lái)避免內(nèi)存泄露的發(fā)生;


圖1
圖2
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容