A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1黑马币
本帖最后由 余琪琪老师 于 2016-2-27 09:52 编辑

MVVM模式是最近才火起来的一个概念,那它和MVC有什么不同呢?下面深圳问答网的师生来探讨一下这个问题。





学生问题:什么是MVVM模式?

老师回答:

Model-View-ViewModel 就是将其中的 View 的状态和行为抽象化,让我们可以将UI和业务逻辑分开。当然这些工作ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。
MVVM模式是通过以下三个核心组件组成,每个都有它自己独特的角色:
  • Model - 包含了业务和验证逻辑的数据模型
  • View - 定义屏幕中View的结构,布局和外观
  • ViewModel - 扮演“View”和“Model”之间的使者,帮忙处理 View 的全部业务逻辑
那这和我们曾经用过的MVC模式有什么不同呢?以下是MVC的结构
  • ViewController 的顶端,而 ModelController 的底部
  • Controller 需要同时关注 ViewModel
  • View 只能知道 Model 的存在并且能在Model的值变更时收到通知
MVVM模式和MVC有些类似,但有以下不同:
  • ViewModel 替换了 Controller,在UI层之下
  • ViewModelView 暴露它所需要的数据和指令对象
  • ViewModel 接收来自 Model 的数据
你可以看到这两种模式有着相似的结构,但新加入的 ViewModel 是用不同的方法将组件们联系起来的,它是双向的,而MVC只能单向连接。
概括起来,MVVM是由MVC发展而来 - 通过在 Model 之上而在 View 之下增加一个非视觉的组件将来自 Model 的数据映射到View

1 个回复

倒序浏览
现在Android项目常用到的代码架构有哪些呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马