MVP架构实践

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架构区别

MVP架构实践_第1张图片
image.png

MVP架构实践_第2张图片
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.代码结构

MVP架构实践_第3张图片
image.png
View层:./view
Model层:./model
Presenter层:./presenter

你可能感兴趣的:(MVP架构实践)