写在前面的话
最近公司需要开新项目,感觉之前项目的构建和模块设置有点乱,后期维护和增加模块不灵活。所以想整合之前的一些项目的功能,做统一的封装、集合,也可以当做一个记录吧,以后可以更好的复用
设计思路
之前的项目一般使用mvp模式来构建,这里先说说我对mvp模式的一些理解:
1) M:model
a. 主要负责网络请求,数据获取
b. 请求参数的封装,
2) V:view
a. 定义界面的一些操作,比如接口返回数据后UI的操作,loading,toast之类的
b. view层要尽量的和数据解耦,不要在view层做数据的操作,只负责刷新界面
3) P:presenter
a. P层主要是作model和view 层的桥接,我的思路是P层可以进行一些数据封装,主要是为了model层过来的数据能更加轻松的再view层使用
b. 现在比较好的一个开发设计思路是尽量减少activity 的使用,尽量多用fragment来实现页面,减少开销,这种情况下使用presenter来存储数据就比较适合,不管你界面怎么切换,所有的数据存在activity的presenter里面,fragment只需要持有该presenter的引用,就可以非常方便的访问或者修改页面数据
以上就是我mvp设计的大体思路了,不过在真是项目中,肯定是使用mvp+mvc混合的方式来编写,因为mvp处理一些交互逻辑复杂的界面,可以使代码逻辑相对清晰,而且可以很好的实现复用,后期维护起来更好;但是简单的界面,不存在过多的交互逻辑,还是使用mvc会简单很多,不需要创建很多类,一个界面就能把流程 走完。这样项目的开销相对较小
说了这么多,都是可能表述不那么直观,下面贴出项目结构:
mvp项目结构如果你觉得自己一个个创建类太麻烦,可以使用MVPhelp 这个插件,非常快速能一键生成所需要的contract、model、presenter
使用步骤
1.创建presenter类
2.在presenter类中使用Mvp Helper
选中插件3.然后就帮你把所有的需要的类就创建好了
生成的类文件
网友评论