一 . MVP浅谈

2017-07-20  本文已影响0人  欢欢喜喜AA

前情提要

由于公司项目结构调整,很多工作都已经停止了,终于有时间闲下来写写技术总结了。
作为一个项目,最主要的就是整个项目的组织结构,结构决定整个项目的可读性和延展性,特别是对于团队开发尤其重要。

在介绍MVP模式之前先介绍一下大家比较熟悉的MVC,有对比才能更好的了解。

MVC模式

即Model-View-Controller。M:模型,V:视图,C:控制器。Model是数据结构和对应的操作,是整个项目的核心,View负责在屏幕上面展示可视的图形信息,Controller负责接受和处理各种点击事件,已经页面的逻辑控制,提供数据给View层。


MVC结构图.png

准确的说,Android中并不是严格意思上面的MVC。

MVP模式

即Model-View-Presenter,M:模型,V:视图,P:表示器。这里的P和MVC中的C都具有流程控制的作用,不同的是MVC中V可以直接和M交互,而MVP中,V只能和P交互,P具有控制和连接V和M的作用,这样使得结构更加清晰,流程更加简单,并且V和P是通过接口进行交互的,这样使得耦合度更低,也更加便于进行单元测试。

MVP结构图.png
因此在Android中Activity就得到了大解放,只需要负责show 数据,将监听到的各种事件传递给presenter即可,简单明了。
Presenter负责处理事件,并且准备数据,调用activity的show方法即可。
Model则负责提供数据和进行数据的处理加工。
具体的代码就不贴出来了,分包看个人喜好,这里附上一张登录图: 登录.png

当然MVP并不全是优点,也有缺点,这样的结构必然会导致接口和类的暴增,如果项目本身定位并不大,则不建议使用这个框架,例如一个很简单的功能,你必须写出只是三个文件来,过于条条框框了,没有必要。

基于MVP解耦的思想,又衍生出了MVVM,既Model-View-ViewModel,Model和View层耦合度更低。

上一篇下一篇

猜你喜欢

热点阅读