美文网首页
MVP学习总结(一)

MVP学习总结(一)

作者: Cloud_9527 | 来源:发表于2017-04-14 17:32 被阅读0次

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

    MVC介绍

    • Model:业务逻辑和实体类
    • View:布局文件
    • Controllor:对应Activity

    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介绍

    • Model 业务逻辑和实体类
    • View 布局文件以及Activity
    • Presenter 负责完成View于Model间的交互

    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

    相关文章

      网友评论

          本文标题:MVP学习总结(一)

          本文链接:https://www.haomeiwen.com/subject/wixgattx.html