美文网首页
MVP架构实践

MVP架构实践

作者: 码上述Andy | 来源:发表于2019-07-05 21:51 被阅读0次

    1.背景

    为了使View(activity/fragment)“干净”没有更多业务逻辑污染,引入MVP设计业务逻辑,在项目中应用MVP可以使业务逻辑与view职责相对比较清晰。

    2.MVP概述

    MVP(Model,View,Presenter)是MVC的演进版本,在MVC的基础上所View(Activity)中的逻辑与界面进行分离,使界面不与具体逻辑杂糅在一起,做到彻底解耦。

    Model:具体数据实体,逻辑处理层,负责数据的处理。
    View:界面层(Activity,Fragment),负责事件处理和View绘制。
    Presenter:数据逻辑处理层,负责连接View与Model桥梁。

    3.MVP与MVC架构区别

    image.png
    image.png

    4.MVP处理流程

    用户的事件或者请求首先会到达View,View传递请求到处理逻辑的Presenter,Presenter从Model层获取数据后,再把处理的数据结果通过对应View的接口传递到View上。View负责显示对应的数据。

    5.为什么使用MVP

    像MVC设计就会使得界面与逻辑杂糅在一起,使得View(Activity、Fragment)类越来越大,业务逻辑与界面耦合在一起,不好维护,同时违背了职责单一的设计原则,而使用MVP架构完全可以做到让View与Model分离。让View只做显示,Model负责数据处理,处理完数据之后通过接口的形式回调给View层即可。

    6.优缺点

    6.1优点:

    1.逻辑与界面完全解耦
    2.便于单元测试,测试逻辑方便
    3.逻辑清析,职责分明单一,View层仅仅做展示不杂糅任何业务逻辑

    6.2缺点:

    1.接口可能会定义很多
    2.每个业务需要一个或者多个Presenter.

    7.MVP\MVC\MVVM选择?

    任何一种架构都有使用场景,应该根据具体情况,选择合适的。

    8.代码结构

    image.png
    View层:./view
    Model层:./model
    Presenter层:./presenter

    相关文章

      网友评论

          本文标题:MVP架构实践

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