MVP总结

这是重新出发的第一篇博客,今天本来是想详细的了解并学习下RecyclerView,不过写demo的时候发现,首先要有个设计框架便去简单了解了下MVP模式。这里把今天写的东西总结一下。

使用MVP的原因

  • 据我了解这个模式不算新了,不过对于我们这种“老年团队”在实际的项目并没有使用,既然如今这么推从,肯定要对MVP的好处有一点的了解。这里只说一些自己的理解
  • 优点:结构清晰,首先分包的方式就有所不同,MVP按业务分。每个业务模块在不同的包,而不是传统的activity包,bean包,adapter包,fragment包。还有就是Activity或Fragment中业务代码完全消失,所有交给了Presenter处理。
  • 优点:完全面向接口编程,实现业务和界面完全解耦。
  • 缺点:代码量增加,对于相对简单的页面或者业务使用,有点过度设计了。就算是复杂的项目使用MVP模式开发也会增加开发量。

使用方法

  • 因为自己也没在项目中太多的使用,这里只是模仿google官方例子写了一个基础的框架,所以这里只是用于记录,以后应该会陆续添加或者修改。
主要类说明
  • 接口BaseMVPActivityInf,view的最外层实现此接口,一般为activity实现。
  • 接口BasePresenter,所有Presenter都必须实现此接口,并在start方法初始化数据。
  • 接口BaseView,所有view实现此接口,其setPresentter在完成Presenter实例化后,在最外层调用。
使用流程
  • activity实现BaseMVPActivityInf,并在onCreate,调用initPresenter
  • initPresenter初始化Presenter
  • 获取fragment对象(此对象必须继承Baseview),并使用添加到Activity
  • fragment和Presenter都实例化后使用baseview.setPresenter绑定Presenter
  • Fragment的onResume要调用presenter.start方法
流程图

mvp 架构建包 mvp设计思路的价值_解耦

使用后的感受:待续