今天有时间看了看google的官方文档,下载todo源码,仔细研读了一下,以为其思想对开发仍是有很大帮助的。我的认为,MVP经过Activity与业务逻辑的解耦,其做为Controller的职责更加单一。 之后增长新的功能或者修改现有功能,只须要修改Presenter的实现从而对Activity的影响很小。有人认为将现有工程改成MVP的结构将增长不少类从而加大工做量,我的认为这点工做量和之后维护升级相比, 这点投入仍是值得的。闲话少说, Todo的源码在: https://github.com/googlesamples/android-architecture/tree/todo-mvp/android
我的画了一个简单的类图,帮助你们理解:git
我的发现google代码结构很是好,若是之后进行MVP实践不妨参考相应的结构。拿addedittask来讲,有二个关于UI的, AddEditTaskActivity和 AddEditTaskActivity,AddEditTaskContract 里面包含View 和 Presenter,在我上面的类图都有所体现。github
最后我附上我的第一次在github提交的仓库,确定有考虑不周的地方,欢迎你们指教。google