1.MVP模式(Model-View-Presenter)是MVC模式的一個衍生。主要目的是為了解耦,使項(xiàng)目易于維護(hù)。
Model 依然是業(yè)務(wù)邏輯和實(shí)體模型
View 經(jīng)常由Activity實(shí)現(xiàn),包含Presenter的引用。所要做的就是當(dāng)有交互時(shí),調(diào)用Presenter里的對應(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交互 ,而是通過與Presenter交互來與Model間接交互
Presenter與View的交互是通過接口來進(jìn)行的,更有利于添加單元測試
通常View與Presenter是一對一的,但復(fù)雜的View可能綁定多個Presenter來處理邏輯
MVC模式:
View可以與Model直接交互
Controller是基于行為的,并且可以被多個View共享
可以負(fù)責(zé)決定顯示哪個View
mvp的核心優(yōu)勢是實(shí)現(xiàn)了view和model 的完全解耦,更改ui界面并不影響model,但是presenter持有view的引用,容易造成內(nèi)存泄漏,所以在使用時(shí)要使用弱引用,來避免內(nèi)存泄露的發(fā)生;
圖1
圖2