MVP模式----學習筆記

what's the MVP ?

隨著UI創(chuàng)建技術(shù)的功能日益增強,UI層也履行著越來越多的職責。為了更好地細分視圖(View)與模型(Model)的功能,讓View專注于處理數(shù)據(jù)的可視化以及與用戶的交互,同時讓Model只關(guān)系數(shù)據(jù)的處理,基于MVC概念的MVP(Model-View-Presenter)模式應(yīng)運而生。

在MVP模式里通常包含4個要素:

(1)View:負責繪制UI元素、與用戶進行交互(在Android中體現(xiàn)為Activity);

(2)View interface:需要View實現(xiàn)的接口,View通過View interface與Presenter進行交互,降低耦合,方便進行單元測試;

(3)Model:負責存儲、檢索、操縱數(shù)據(jù)(有時也實現(xiàn)一個Model interface用來降低耦合);

(4)Presenter:作為View與Model交互的中間紐帶,處理與用戶交互的具體邏輯。

在Android開發(fā)中,Activity并不是一個標準的MVC模式中的Controller,它 的首要職責是加載應(yīng)用的布局和初始化用戶界面,并接受并處理來自用戶的操作請求,進而作出響應(yīng)。隨著界面及其邏輯的復雜度不斷提升,Activity類的 職責不斷增加,以致變得龐大臃腫。當我們將其中復雜的邏輯處理移至另外的一個類(Presneter)中時,Activity其實就是MVP模式中 View,它負責UI元素的初始化,建立UI元素與Presenter的關(guān)聯(lián)(Listener之類),同時自己也會處理一些簡單的邏輯(復雜的邏輯交由 Presenter處理)

MVP與MVC的異同

MVP模式:

View不直接與Model交互,而是通過與Presenter交互來與Model間接交互

Presenter與View的交互是通過接口來進行的,更有利于添加單元測試

通常View與Presenter是一對一的,但復雜的View可能綁定多個Presenter來處理邏輯

MVC模式:

View可以與Model直接交互

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

可以負責決定顯示哪個View

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

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

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