玩转MVP模式 - 高级篇

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

创建包以及需要的类

《玩转MVP模式 - 高级篇》 base

BaseActivity

《玩转MVP模式 - 高级篇》 BaseActivity

BasePresenter

《玩转MVP模式 - 高级篇》 BasePresenter

改善既有代码

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

MainPresenter

《玩转MVP模式 - 高级篇》 MainPresenter

可以看到对于
MainPresenter,我们甚至连
显示的构造函数也不需要写!

需要
Model时我们直接
getModel()就可以!

需要
View时我么直接
getView()就可以!

MainActivity

《玩转MVP模式 - 高级篇》 MainActivity

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

总结

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

备注

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

    原文作者:iceIC
    原文地址: https://www.jianshu.com/p/a6214168d862
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞