美文网首页
Android Mvp简单入门

Android Mvp简单入门

作者: 王魔王 | 来源:发表于2019-08-03 15:54 被阅读0次

MVP是什么?

mvp是一种架构思想,只要符合这种思想的软件架构,都可以是mvp

为什么要使用mvp?

要想知道为什么使用mvp,我们得从传统的mvc说起。

什么是mvc?

mvc是一种经典的软件架构。这种软件架构把软件分为三部分开发

M:module层,负责处理数据
V:view层,负责显示数据
C:controller层,负责逻辑控制

talk is cheap,show me the code

翻译一下:吹牛谁都会,让我看代码
不用怀疑,就是说你呢。
下面我用mvc的模式敲一个获取用户信息的demo


mvc获取用户信息的示例

这样写代码有什么缺点呢?
答案是没有什么缺点,目前来讲
但,在实际的开发过程中,我们的界面通常都比较复杂,业务逻辑也很多。此时如果我们还用mvc敲代码的话,我们会发现activity中有一堆代码,这些代码有的是控制逻辑用的,有的是更新View使用的,有的是获取/处理数据用的,杂乱不堪,阅读起来及其困难
另外,还有一个缺点,我们目前无法体会---不方便测试
在座的各位可能觉得无所谓,但是我肯定是无法忍受这种情况一直存在的。但是我水平太低了,不想忍,也得忍。
还好,大神们忍不住了。

mvp应运而生

M:module层,复杂处理数据
V:View层,负责显示数据
P:Presenter层,负责逻辑交互

同样是上面获取用户信息的功能,下面是mvp的示例

首先,我们来定义View层,View层一般是一个接口


View层的接口定义

接着我们需要定义Presenter层,Presenter层是一个普通的java类


Presenter层的定义

接下来就是在activity中使用了


activity中的代码
到此,简易版的mvp就实现了,mvp千变万化,都离不开这个模型。
写在最后:现在晃动一下你的脑袋,把里面的水倒掉。想想这个mvp的demo中少了什么?

对,我只介绍了view和present,说好的module呢?
其实,这个demo中,网络工具类就是我们的module类,只不过被弱化了而已。
想一想,module层的作用是什么?
答:获取数据
那么我们这个demo中的数据是从哪里来的?
答:网络工具中
所以说,这个demo中网络工具类就是mvp中的module类。
只要掌握了这个demo,彻底理解了这个demo,那么再去学习理解其他变化的mvp就不再是问题。

相关文章

网友评论

      本文标题:Android Mvp简单入门

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