Android之MVP设计模式

时间:2023-02-04 21:14:46

Android在开发过程中演变出许多的设计模式,今天我们就在讲讲MVP设计模式

简介

MVP设计模式,全称Model(模型)- V(View)-P(Presenter)层,是MVC设计模式的一种变体(详情请见)。因为MVC设计模式有着缺陷,就是V层和C层再实际开发中的分割线不是很明确,容易造成activity层十分臃肿。所以产生了一种新的设计模式,就是MVP设计模式,MVP把Activity中的UI逻辑抽象成View接口,把业务逻辑抽象成Presenter接口,Model类还是原来的Model

现在这样的话,Activity的工作的简单了,只用来响应生命周期,其他工作都丢到Presenter中去完成。从上图可以看出,Presenter是Model和View之间的桥梁,为了让结构变得更加简单,View并不能直接对Model进行操作,这也是MVP与MVC最大的不同之处。

详细介绍

  • Model: 数据层. 负责与网络层和数据库层的逻辑交互.
  • View: UI层. 显示数据, 并向Presenter报告用户行为.
  • Presenter: 从Model拿数据, 应用到UI层, 管理UI的状态, 决定要显示什么, 响应用户的行为.
    Android之MVP设计模式

与MVC的区别

MVP:
View: 对应于Activity,负责View的绘制以及与用户交互
Model: 依然是业务逻辑和实体模型

Presenter: 负责完成View于Model间的交互

View不直接与Model交互,而是通过与Presenter交互来与Model间接交互。
Presenter与View的交互是通过接口来进行的。

通常View与Presenter是一对一的,但复杂的View可能绑定多个Presenter来处理逻辑。

MVC:
View:对应于布局文件
Model:业务逻辑和实体模型

Controllor:对应于Activity

View可以与Model直接交互。Controller是基于行为的,并且可以被多个View共享,可以负责决定显示哪个View。

从MVC到MVP的一个转变,就是减少了Activity的职责,减轻了它的负担,简化了Activity中的代码和一些操作,将逻辑代码提取到了Presenter中进行处理,降低了其耦合度。