Android MVP模式简介

原创 2016年06月01日 21:48:03

MVP模式现在已经被应用很多了。那么什么才是MVP呢?这篇文章就介绍了MVP模式的相关内容以及本人基于自己的理解写了一个小Demo http://github.com/Ti2Yuan/androidMvpDemo,如果有什么不对的地方也请读者能指出,谢谢!共同交流嘛!


什么是MVP模式?

Android MVP(Model View Presenter)模式是著名的MVC(Model View Controller)模式的衍生物,通常包含4个要素:
(1)View:负责绘制UI元素、与用户进行交互(在Android中体现为Activity);
(2)View interface:需要View实现的接口,View通过View interface与Presenter进行交互,降低耦合,方便进行单元测试;
(3)Model:负责存储、检索、操纵数据(有时也实现一个Model interface用来降低耦合);
(4)Presenter:作为View与Model交互的中间纽带,处理与用户交互的负责逻辑。

MVP模式就是为了更好细分视图(View)与模型(Model)的功能,让View专注于处理可视化界面,与用户交互,同时让Model也只专注于处理数据的处理。它与MVC模式的不同在于:

  1. MVP模式中 View不直接与Model交互,而是通过Presenter来与Model间接交互。但是在MVC模式中View可以和Model直接交互。
  2. MVP模式中通常VIew与Presenter是一对一的关系,而MVC模式中Controller可以被多个View共享。
  3. MVP模式中Presenter与View的交互是通过接口来进行的,更有利于添加单元测试。

那为什么要使用MVP模式呢?

在Android开发中,我们经常会遇到一种情况,就是activity里面集中了UI界面的交互与数据显示,还有相关的数据处理机制,显得相当繁杂,可读性非常差。这个问题在当项目越来越大的时候越发突出,令人烦恼。那么为了开发出一个扩展性、稳定性良好的APP,我们就必须定义分离层。而MVP模式使得View和我们的数据源独立。我们将应用分为三个层次,每个层次都可以独立测试。

模式的优点:
(1)降低耦合度
(2)模块职责划分明显
(3)利于测试驱动开发
(4)代码复用
(5)隐藏数据
(6)代码灵活性


如何去实现MVP模式呢?也许每个人对它的实现都有点差异,以下是我参考http://antonioleiva.com/mvp-android/之后的一点想法。

Presenter层:负责连接View和Model两个层次,从Model检索数据然后返回到View层用于显示。但也可以基于用户与界面的交互决定改如何显示。

View层:通常可以使一个Activity或者Fragment,包含Presenter层的一个引用,每次用户与View存在交互,View层就会调用Presenter的方法进行处理。

Model层:与Presenter层交互,存储、检索、操纵数据,也就是我们想要显示在UI界面的数据提供者。


总结
在Android开发中,从逻辑上分离接口不是容易的,但是MVP模式却使得,预防我们的Activity里面代码成堆这个难题,变得简单。在大项目中,这个模式显得更加重要。否则,维护和扩展将会极其艰难。


本文参考
http://blog.csdn.net/vector_yi/article/details/24719873
http://antonioleiva.com/mvp-android/

最后附上本人的一个小案例。http://github.com/Ti2Yuan/androidMvpDemo

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android--MVP模式--简介

MVC模式 MVP模式 两者对比

MVP模式简介

MVP模式简介MVP模式是从经典的MVC模式演化来的,它们俩基本是相通的,Model是提供数据的,View是界面显示,Presenter/Controller是负责逻辑处理MVP和MVC的区别在MVC...

android mvp模式demo

  • 2017年12月08日 17:29
  • 99KB
  • 下载

Android中MVP模式极简例子

  • 2017年06月07日 15:31
  • 21.4MB
  • 下载

Android中的MVC、MVP、MVVM简介

在Android开发中,常用到的开发模式有MVC、MVP、MVVM,在此作简要介绍。
  • CShawnX
  • CShawnX
  • 2016年11月02日 16:41
  • 212

Android MVP和MVC模式比较Demo

  • 2015年11月26日 19:49
  • 7.97MB
  • 下载

Android的mvp模式+otto消息总线源码

  • 2016年02月24日 11:07
  • 6.3MB
  • 下载

Android学习笔记MVP模式框架

Android学习笔记MVP模式框架1.MVP模式介绍: 在上一次学习中,我简单的介绍了MVC构架,这次我来简单的介绍下什么是MVP。对于MVP,他其实就是MVC的一个演化版本,MVP全称Model...

Android MVP模式示例

  • 2016年01月19日 16:19
  • 494KB
  • 下载

Android中MVP模式的开发

  • 2016年10月14日 18:19
  • 8.18MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android MVP模式简介
举报原因:
原因补充:

(最多只允许输入30个字)