Android MVP模式梳理

一直慕名Android的MVP模式沒時間去研究,今天就好好記錄一下我所理解的MVP模式。

看別人寫的源碼是最好的學習方法。

這次看的是谷歌的官方示例項目:https://github.com/googlesamples/android-architecture

整體的結構如下:


WX20170926-114034@2x.png

這個例子主要是做了一個tudo項目,把整體模塊分成了四塊:tudo主模塊、tudo詳情模塊、統計模塊、添加tudo模塊。

項目首先定義了View和Presenter的基類作為所有模塊通用的類,然后每個模塊定義了一個契約類Contract來定義每個模塊View和Presenter要處理的事務接口。

每個模塊先由Activity創建繼承自契約類Contract的View接口的fragment作為MVP的View處理UI業務,然后創建繼承自契約類Contract的Presenter類把fragment傳入,通過基類View的setPresenter方法將View和Presenter綁定在一起。UI初始化在fragment中實現,邏輯入口在Presenter的start方法中開始,fragment中的邏輯部分只需要調用相應的Presenter接口,Presenter中的UI操作也只需要調用相應的View接口,從而實現UI和邏輯代碼的分離。

我想起我之前做的一個項目,也是有這種分離的想法,當時主要有兩個模塊,登錄和支付,于是我創建了兩個單例類、兩個Activity和幾十個fragment,以此來做到View和業務的分離以及View和View之間的分離。其實我當時如果有MVP的思維模式我應該創建2個Presenter,分別對應兩個Activity的UI邏輯,創建2個Model分別對應登錄和支付模塊,多個View接口對應fragment。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容