玩转MVP模式|玩转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()
就可以!
【玩转MVP模式|玩转MVP模式 - 高级篇】
MainActivity
文章图片
MainActivity
对于
MainActivity
,我么也可以看到使用起来大大方便了,而且根本无需担忧内存泄露问题。
总结
其实MVP并没有十分高深的内容,缺点是类太多,优点是解耦。
MVP只是一个设计模式,只是一个工具,实际开发中我们需要根据实际情况来取舍。
备注
代码已上传Github https://github.com/ice45571/MVP
推荐阅读
- --木木--|--木木-- 第二课作业#翼丰会(每日一淘6+1实战裂变被动引流# 6+1模式)
- 设计模式-代理模式-Proxy
- 炒股知识(超级短线操作的秘籍|炒股知识:超级短线操作的秘籍 玩转股市)
- 【译】Rails|【译】Rails 5.0正式发布(Action Cable,API模式等)
- java静态代理模式
- VueX(Vuex|VueX(Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式)
- 玩转Micro:bit(04):电子宠物
- Kotlin基础(10)-代理模式在kotlin中的使用
- 长谈的确是这个时代需要的一种模式
- 要玩转这个星际争霸II开源AI,你只需要i5+GTX1050