【Android 编程架构】MVC/MVP/MVVM

Android发展到今天比较主流的架构是MVP,但是MVP其实也是对MVC的一种演变,所以在着重介绍MVP之前先总结一下MVC模式。

##MVC定义
在Android开发过程中流行的开发框架曾经采用的是MVC模式,用MVC模式的好处就是便于UI界面的显示和业务逻辑的分离。
MVC的全名是Model View Controller,中文意思就是“模型 视图 控制器”,它是一种软件的设计典范,它是用一种“业务逻辑、数据、界面显示”分离的手段组织代码。在Android当中,
M:处理业务逻辑
V:处理数据显示部分(XML布局)
C:Activity处理用户交互的问题(Activity控制器控制读取Model层的数据,然后把数据交给界面进行显示)

##Android MVC缺点

  1. 在Android当中相比传统的MVC设计模式,它的View层对应的是我们Android当中的XML布局文件,但是这个XML布局文件并不像我们的Java Web端那么强大,能做的事情其实非常地有限
  2. 而Controller层对应的Activity这个类不仅要处理业务逻辑,同时要处理Android当中操作UI的功能,这就导致Controller层非常的冗余和厚重

为了改善Android MVC的问题,我们引入了MVP模式,它会比MVC模式的耦合性更低。
##MVP定义
当我们把架构从MVC演变成MVP后,它出现的Presenter层到底是什么意思?在MVP里我们会将Activity层视为View层,而Presenter层负责View层和Model层的数据交互。具体来说是这样,

  1. M:数据模型层
  2. V:对应Activity,负责View的绘制和用户交互
  3. P:负责View层和Model层的交互
    这里写图片描述
    我们来看上图,不管是上面MVP的P层,还是下面的MVC的C层,它都起到了逻辑控制处理的角色。而大家仔细看图,两者最大的一点不同是,MVP中的Model层是不会和View层直接进行交互的。
    我们知道,在Android中对UI的操作只能在主线程中,所以我们把View层和Model层分离开是非常有必要的。
    ##MVP实战
    为了便于理解,单独开了一篇blog讲解MVP,点击此处查看

接下来我给大家简单讲解一下MVVM设计模式,理论上来说,它会比MVP模式更先进,但是在实战中用的还是比较少。这里简单讲一下。
##MVVM定义
这里写图片描述
其中,
View层对应的是Activity和XML布局,
Model层对应的是数据模型,
ViewModel层对应的是View层和Model层的交互。
MVVM和MVP的目标其实是很类似的,它主要通过数据绑定和依赖来打造一个更高效的架构。接下来来看一下如何构建一个MVVM框架。
##最后
以上就是我对MVC/MVP/MVVM的总结,如有任何疑问可直接留言提问,博客每天都会查看。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值