【Android 编程架构】MVC/MVP/MVVM_第1张图片 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层的交互
    【Android 编程架构】MVC/MVP/MVVM_第2张图片
    我们来看上图,不管是上面MVP的P层,还是下面的MVC的C层,它都起到了逻辑控制处理的角色。而大家仔细看图,两者最大的一点不同是,MVP中的Model层是不会和View层直接进行交互的。
    我们知道,在Android中对UI的操作只能在主线程中,所以我们把View层和Model层分离开是非常有必要的。
    ##MVP实战
    为了便于理解,单独开了一篇blog讲解MVP,点击此处查看

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

更多相关文章

  1. Android面试之----Android系统架构图及简单的系统架构介绍
  2. 在 Android 上使用 XML 传输数据(附例子程序)
  3. 数据存储与ContentProvider
  4. Andriod数据推送方案
  5. Android GUI编程模型(MVC设计模式)

随机推荐

  1. Android中Message机制的灵活应用
  2. IBM网站文章: XML, JSON, ANDROID
  3. Android(安卓)GirdView
  4. ANDROID 开发工具安装
  5. Android(安卓)4编程入门经典
  6. 【Android(安卓)Training视频系列】第3讲
  7. [Android实例] 【Kris专题】android 换
  8. Android中常用的Intent启动服务
  9. Android(安卓)layout xml总结(1)
  10. android broadcastReceiver生命周期及两