項目源碼:todo-mvp
1.APP結(jié)構(gòu)
2.主要功能模塊
以上為四個主要功能模塊渐苏,每個功能模塊包含Activity/Fragment/Contract/Presenter袋马。
3.項目結(jié)構(gòu)
項目結(jié)構(gòu)
BasePresenter作為基礎(chǔ)類只簡單定義了一個方法。
public interface BasePresenter { void start();}
嗯,BaseView也是:
public interface BaseView<T> { void setPresenter(T presenter);}
4.結(jié)構(gòu)分析
以主頁模塊為例:
logic.png
紅色C表示類纯路,紅色I表示接口,黑線表示變量映射
TasksActivity
Activity中有作為V層的Fragment,和作為P層的Presenter對象磁玉。
TasksFragment
通過setPresenter(T presenter)
方法鏈接Presenter對象。使用Presenter處理事件驾讲。
TasksPresenter
持有View(mTasksView)對象和Model對象(mTasksRepository)蚊伞,通過mTasksRepository(M層)與數(shù)據(jù)層交流,完成之后通過mTasksView調(diào)用方法改變UI吮铭。
TasksContract
重點时迫,里面定義了兩個接口,分別是View(繼承BaseView)和Presenter(繼承BasePresenter)谓晌。TasksFragment實現(xiàn)了其中的View接口掠拳,TasksPresenter實現(xiàn)了其中的Presenter接口。
TasksRepository
用于接收和處理數(shù)據(jù)纸肉,該類包含一個(偽)遠(yuǎn)程數(shù)據(jù)處理對象和本地數(shù)據(jù)處理對象溺欧。