我的MVP架构的学习之旅

作者: 文艺的程序狗 | 来源:发表于2017-11-07 11:31 被阅读174次
  • 阅读本文大概需要4min

关键字


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资料学习


  • 最直接的资料当然是Google官方提供的Demo了, android-architecture里面包含了基本的MVP架构,The Clean MVP 以及搭配流行框架RxJva 和Dragger2的各种版本,还有MVVM设计架构以及与MVP一样搭配流行框架的不同版本。最初的概念入门可以参考demo,避免走入误区。

  • 要想在项目中更真实的去接触,同时手上又没有可以入手的项目,学习别人的Sample是最好的方式。关于MVP架构的学习,比较流行的都会搭配一些流行框架,这样就免不了要学习Dragger 、RxJva、RxBus(也可以用RxJava实现)等一些流行框架的学习,你可以先简单了解一些这些开源库,然后在学习Demo遇到问题有针对性的学习,关于Sample的选择,我有几个亲测还不错的。

    • https://github.com/esoxjem/MovieGuide 这个Demo很简单,只有 列表展示和详情显示,代码采用The Clean MVP,包含Dragger2、RxJava,对于基本了解了Dragger2 和RxJva可以先参照这个例子
      Tips:例子的运行需要去这个地址去注册,然后申请API_KEY,最后按照README简单配置就可以了。

    • https://github.com/Rukey7/MvpApp这是一个比较完整的项目,代码量比较大,包含新闻,图片,视频。包含了Dragger2、RxJava,生命周期管理rxlifecycle,Tinker热修复,视频播放ijkPlayer,内存泄漏检查leakcanary等一些开源库,该Sample适合想把开源库结合到具体项目很有帮助

    • https://github.com/JessYanCoding/MVPArms一个你可以直接引入自己具体项目的MVP框架,作者对该框架进行了比较友好的封装,包括代码模板的快捷键,Token等一些公共变量,调试信息输出及错误的捕获,可以满足中小型项目的开发。这个框架的代码量也不少,设计上也不简单,需要花点时间学习。

MVP的思考


有关思考,我总结了两点

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

相关文章

  • 我的MVP架构的学习之旅

    阅读本文大概需要4min 关键字 Architecture、MVP 、The Clean Code 前言 本文是本...

  • MVC和MVP

    Android mvp 架构的自述 如何更高效的使用MVP以及官方MVP架构解析 老的MVC架构 新的MVP架构 ...

  • Android UI架构初步

    项目中从最初的MVC架构演变为MVVM架构,本文主要通过Google推出的官方实例,学习MVP架构。 MVP/MV...

  • Android-Architecture学习篇一:基础的MVP架

    1 前言 作为google官方的安卓架构, 官方地址 ,很有学习的必要! 2 基础的MVP架构 todo-mvp/...

  • android MVP架构

    一、MVP介绍 MVP的架构组成如图1所示MVP架构.png相对于MVC架构,MVP架构对应的内容有了如下调整: ...

  • Android MVP的简单使用

    1.前言 2.MVC架构 1.MVC架构优缺点 3.MVP架构 1. MVP架构优缺点 四.MVP架构实战 MVP...

  • Android MVP框架搭建

    MVP框架搭建·源码通过本文记录一下学习MVP三层架构的思想,并实现一个基础的MVP项目架构搭建过程,通过MVC架...

  • Android主流框架面试准备

    MVP Android MVP架构搭建史上最全的Android MVP模式架构面试题集锦Android面试题-架构...

  • Android 架构优化~MVP 架构改造

    以前我写过一篇关于 MVP 架构的文章《Android架构—MVP架构在Android中的实践》。 随着业务的复杂...

  • 官方架构组件介绍之LifeCycle(一)

    写在前面的话 前面学习Android架构 MVC 以及MVP 有架构这块有一个简单的认识和总结 本来打算在MVP这...

网友评论

本文标题:我的MVP架构的学习之旅

本文链接:https://www.haomeiwen.com/subject/rmudmxtx.html