初识MVP架构

来源:互联网 发布:python传入参数 编辑:程序博客网 时间:2024/05/16 17:48

初识MVP架构

一、MVC的优缺点

首先,在说MVP之前要说一下MVC,MVC顾名思义:

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

看起来的确像那么回事,但是细细的想想这个View对应于布局文件,其实能做的事情特别少,实际上关于该布局文件中的数据绑定的操作,事件处理的代码都在Activity中,造成了Activity既像View又像Controller。因为MVC架构的简单无脑,在很多程序员眼中还是很好用的。但由于大量的操作都放在Activity内,导致一个Activity内冗余了大量的代码,非常不方便阅读,于是就有了MVC架构的进化版–MVP,我们这篇文章是为了介绍MVP,所以MVC就说到这里。

二、MVP的架构分析

首先,我们同样的来看一下MVP分别的作用:

  • Model:
    1、负责业务逻辑和实体模型
    2、负责数据的加工处理,如:数据的解析、存储、分发、以及增删改查、
    意思就是凡是涉及到数据操作的都是在model进行的。
    所以model不仅仅只是实体类的集合,同时还是包含关于数据的各种处理操作。

  • View:
    1、用户交互和视图显示,在android中对应activity,说白了就是用户看到的界面
    2、一个view可以有多个presenter,也可以有一个presenter

  • Presenter:
    1、承上启下:首先,presenter是介于model层和view层之间的,presenter会把view交给自己的命令进行一定的校验等操作再交给model层处理,并且会把model层的处理结果返回给view层
    2、封装业务:一些业务逻辑也属于presenter层
    3、刷新view:presener会根据获取的数据成功与否来通知view是应该显示成功还是失败
    4、ui线程与普通线程之间的线程切换

其次,我们来看一下MVP的架构大概是怎样的:

这里写图片描述

最后,附上一个MVP框架的示例demo:https://github.com/LinhaiGu/MVPDemo

MVP架构的优缺点:

mvp架构的使用大大减少了Activity的职责,简化了Activity中的代码,将复杂的逻辑代码提取到了Presenter中进行处理。与之对应的好处就是,耦合度更低,更方便的进行测试。但另一方面,由于presenter层的引入,会不可避免的导致类的数量的增加,对于使用不熟练的开发人员会降低开发速度

(此图片和demo出自文章:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0227/2503.html)

参考资料:
http://blog.csdn.net/lmj623565791/article/details/46596109
http://blog.csdn.net/hai_qing_xu_kong/article/details/51745798

0 0