MVP学习总结(一)

2017-04-14  本文已影响0人  Cloud_9527

理解:MVP是种软件设计的架构,每个人的认知理解也各有不同,真正使用起来,要根据个人的技能水平,还有业务需求去选择。没有硬性规范做法,只有官方推荐做法。

MVC介绍

MVP可以理解是MVC的演化版本,相对于MVC的区别是将M和V完全解耦,一般使用的都是是MVC模式,但是在Activity中既有操作View的部分,又有Controllor的部分。可以理解为Android主要是用的MV模式,而没有完全独立的C。

Most of the modern Android applications just use View-Model architecture,everything is connected with Activity.

MVP介绍

MVP核心思想:把Activity中的UI逻辑抽象成View接口,把业务逻辑抽象成Presenter接口,Model不变。

从MVC模式到MVP模式的好处

1.减少Activity中的代码,让代码更加简洁。

2.分离视图逻辑和业务逻辑,解耦。

3.Present抽象成接口,可以有多重具体的实现,方便进行单元测试。

4.把业务逻辑抽到Presenter中去,避免后台线程引用着Activity导致Activity的资源无法被系统回收从而引起内存泄露和OOM

解释:Android默认的MVC模式,是在Activity中进行一些异步任务,如下载图片,网络请求等。当进行异步任务时,会持有当前Activity的引用。若在任务没有完成的情况下,应用被切换到后台(Activity执行了 onDestroy()方法),而且异步任务还是会持有Activity的引用,导致无法回收该Activity实例,造成Activity leak,进而更进一步引发OOM

MVC与MVP区别

MVC Date与View耦合性太高

MVC

MVP View与Data解耦###

MVP

架构对比###

Paste_Image.png

参考文章###

http://blog.csdn.net/lmj623565791/article/details/46596109
https://segmentfault.com/a/1190000003927200
https://github.com/antoniolg/androidmvp
https://github.com/googlesamples/android-architecture

上一篇 下一篇

猜你喜欢

热点阅读