一、MVC

MVC,即Model、View、Controller三部分,是最简单的框架模式。


App架构之MVP、MVVM、MVC对比_第1张图片 MVC

视图(View):用户界面,Android中使用XML布局实现。
控制器(Controller):业务逻辑,Android中使用Activity实现。
模型(Model):数据保存,Android中应该单独提取出一个类来实现。

- MVC在项目中出现的问题
在Android中,所以的交互都要通过Activity来实现,包括数据的获取、View的绑带、动画、事件监听、逻辑处理,生命周期的管理等等,Activity不再只是一个Controller,它包含了太多不同的功能。而且,其不仅仅违背了单一原创,更导致Activity类过于臃肿,出现异常难以捕捉,与各个模块之间耦合性严重,扩展、新增业务逻辑都会变的困难,测试相关的操作也变的更加复杂。

- MVC在优化建议(类似于MVP)
1.View的交互,转移到Fragment中进行处理。
2.对Actvity中的对数据相关的操作,提取到Model层中,对Model层进行单独的封装,在封装类中处理数据相关的逻辑。
3.Activity仅仅作为一个容器,只包含必要的UI操作。

二、MVP

MVP,即Model、View、Presenter,是当前最主流的APP框架模式,是MVC的升级版。

App架构之MVP、MVVM、MVC对比_第2张图片 MVP

在MVP中,View或Model只可以和Presenter交互,View和Model之间不会有任何的交互,实现了View与Model之间的解耦,是View与Model相对独立,提高了代码的拓展性,View或Model的复用性。
而其核心思想就是去除了MVC的Controller层,使用Persenter代替,通过Presenter来实现对Model的操作。而Presenter是View和model的中间层,用于处理业务逻辑,Presenter中不应该存在View交互以及数据存取相关的操作。

二、MVVM

MVVM,即Model、View、VIewModel,是还待完善的框架模式,目前使用的比较少。

App架构之MVP、MVVM、MVC对比_第3张图片 MVVM

MVVM是MVP的演进版本,其核心是实现了双向绑定,其主要依赖于android提供的DataBingding兼容库实现。在MVVM中将MVP中Presenter替换为ViewModel。而ViewModel相当于UI与Model的桥梁,将View与Model直接绑定,并将相关的业务逻辑下移,放在Model层中进行处理。


参考代码:
Google官方架构github
[Android] MVVM设计模式及实例
Android DataBinding:再见Presenter,你好ViewModel!

更多相关文章

  1. Android中扫描多媒体文件操作详解
  2. Android经久不衰最受欢迎的开源库整理,你一定用过10个以上,架构师
  3. Android GSM驱动模块(rild)详细分析(一)基本架构及初始化
  4. 使用android快速开发框架afinal的FinalDb操作android sqlite数据
  5. Android商城购物车页面实现和逻辑实现
  6. android机制系列之七 Android Camera API1架构之一 Camera API1
  7. Android 开发架构学习篇

随机推荐

  1. Android中nemu菜单的字体太小?如何设置ac
  2. 【Cocos2d-x】Mac 上 Cocos2d-x 3.X 打包
  3. Android(java)学习笔记127:Android(安卓)Stu
  4. Android系统使用感受——记录我的三星GT-
  5. Android(安卓)手机登陆Exchange 2013邮箱帐
  6. APP安全谁之过?爱加密为APP开发者分忧
  7. Android活动生命周期
  8. Android中实现定时器的五种方式
  9. android https 双向认证--高级
  10. Android(安卓)Studio(7)---从模板添加代