Android架构Android开发经验谈Android开发

我的MVP架构的学习之旅

2017-11-07  本文已影响174人  文艺的程序狗

关键字


ArchitectureMVPThe Clean Code

MVP hello World

前言


本文是本人对于Android MVP的架构的学习过程以及思考,没有具体的代码例子,不过我相信你看了肯定会有收获的。

思考


AndroidMVP的设计架构从接触到现在已经快有两年了,这些年一直与自己的糟糕的代码打交道,
从不规范的MVC——把大多数业务逻辑和界面展示写在Fragement/Activity里
到不规范的MVP——把数据与逻辑处理(M与P),以及逻辑处理与界面(P与V)代码区分的不清晰。
关于学习MVP的教程,百度Google一搜一大把,但是很多都是互相摘抄甚至是误导性错误理解。以下我将从MVP的介绍MVP资料学习MVP的思考三个方面进行总结,讲的不好欢迎交流想法、拍砖。

MVP介绍


M-V-P,分别是Model(数据管理层,包括远程服务器与本地缓存以及本地数据库等),Presenter(业务处理层,View与Model交互中介的身份,负责根据View中用户的交互来控制Model对数据的处理,然后展示到View中去),View(视图的展示层,只有有关界面操作的方法,不直接和Model交互)
典型的架构图

图片1来自Google Sample
还有最早 uncle bob这里提出的The Clean Architecture
图片2来自Google Sample

两者的差别,从图片上可以很直观的看到图片2在图片1的基础上多加了Domain Layer,在这一层主要职责就是对数据进行增删改查的一些操作,在这里很方便写测试用例,可以说图2是图1的升级版了。

MVP资料学习


MVP的思考


有关思考,我总结了两点

  1. 保证V不存在数据的全局变量
  2. 点击事件的处理放在P里,不要放在Adapter或者Fragment的V里面
上一篇下一篇

猜你喜欢

热点阅读