前言

上一周上安卓课无聊(让我一个写了这么久安卓的人听老师教imageview很痛苦的好不好!),刷着手机的公众号看见郭霖发的已调关于Android应用架构模式的文章。看了开头觉得蛮有兴趣的,正好最近也写代码的时候老是在想怎么把代码写得整洁好看。然后我就继续看下去了,之后我就了解到了android有一种叫MVP的架构。感觉自己可以学习一下就开始研究了,今天第一篇就分析一下MVP模式到底是什么吧!

感兴趣的可以看看郭霖的介绍:
MVC、MVP、MVVM,谈谈我对Android应用架构的理解 请输入链接描述


什么是MVP模式

MVP,这里每个字母都是一个单词,简单来说就是分开三种不同的层次去完成一个页面的开发(不是王者荣耀那种mvp啦老铁!)

  • M:Model,主要负责的业务逻辑处理,数据获取。譬如我在安卓开发中很常用的在后台服务器通过接口拿数据或者在本地的文件缓存获取数据的操作
  • V:View,视图的意思嘛。就是用来处理界面的ui的。
  • P:Presenter,主要用来做V层和M层的联系操作,也就是说业务数据逻辑和视图ui的连接桥梁

MVP的工作方式

以下是我总结的4步流程

1. 首先在界面创建的时候,例如Activity在OnCreate的时候就会调用View层的接口
2. View层就会调用Presenter中的相应操作
3. 然后Presenter就会调用相对应的Model层的逻辑去获取相应的数据
4. 当Presenter获取到数据后就会回调给View层然后就是在界面显示出来了
通过这4步之后就实现了视图和数据绑定的逻辑,这和平时在界面创建的时候初始化ui控件然后通过一个方法去后台或者本地缓存获取数据显示到窗口是一个道理的。区别就在于采用MVP后一个界面的代码就变得更加模块化了,代码分离的难度也会降低。


初步了解的感觉

  • 优点:
    优点就很明显啦,上面也说过了就是各功能模块化嘛,符合低耦合的理念。
  • 缺点:
    因为每一层都是一个接口在管理不同的逻辑,代码在感官上就是不停的跳来跳去,这样可能对一些不够熟悉java代码的人来说(俗称:小白)可能会不太友好。

本来想把初步学习的代码也写一下,奈何项目有任务,代码就留在下一篇了。
最后吐槽一下:为什么上传不了图片!很难受!

标签: Andorid MVP模式

仅有一条评论

  1. Kevin Qiu Kevin Qiu

    强势点赞,图片上传不了的问题我会跟踪解决一下。

添加新评论