玩转MVP模式 - 高级篇

在上篇文章玩转MVP模式 - 基础篇中我们已经掌握了MVP的所有流程,但是遗留了两个问题:1.我们每增加一个View就得增加一个相应的Presenter以及一个Model,然后每次都重复造轮。2.activity持有presenter的引用,当activity销毁时回导致内存泄露。所以在本篇文章中我们来将其封装并解决内存泄露问题。

创建包以及需要的类
base

BaseActivity
BaseActivity

BasePresenter
BasePresenter

改善既有代码

Ok,到现在为止我们已经封装成功并且解决了内存泄露问题,现在我们把之前的代码进行改造,看看封装之后我们写一个View的代码量能减少多少吧~

MainPresenter

MainPresenter

可以看到对于MainPresenter,我们甚至连显示的构造函数也不需要写!
需要Model时我们直接getModel()就可以!
需要View时我么直接getView()就可以!

MainActivity

MainActivity

对于MainActivity,我么也可以看到使用起来大大方便了,而且根本无需担忧内存泄露问题。

总结

其实MVP并没有十分高深的内容,缺点是类太多,优点是解耦。
MVP只是一个设计模式,只是一个工具,实际开发中我们需要根据实际情况来取舍。

备注

代码已上传Github https://github.com/ice45571/MVP

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,687评论 25 708
  • 作者:李旺成 时间:2016年4月3日 “Android MVP 详解(下)”已经发布,欢迎大家提建议。 MVP ...
    diygreen阅读 129,041评论 86 1,321
  • 转载至:http://www.jianshu.com/p/9a6845b26856 “Android MVP 详解...
    SnowDragonYY阅读 10,360评论 5 241
  • 2/60 没有跑步机,今天第一次划船机3000m,刚开始有点累,后来呼吸匀速后感觉还好,没有心脏要跳出来的感觉,应...
    摇月亮阅读 288评论 0 1
  • 重庆的天空开始变蓝了 从沙坪坝的慵懒到虎溪的云淡风轻 一路的风景随轻轨飘远 一路的孤单随酒精入眠 六个人的麻将只玩...
    月夜天铭阅读 173评论 0 0