MVC和MVVM有什么区别?

「MVC」

  • M - Model:模型,是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据
  • V - View: 视图,是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的。
  • C - Controller: 控制器, 是应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

  

流程

  • View 接受用户交互请求
  • View 将请求转交给Controller处理
  • Controller 操作Model进行数据更新保存
  • 数据更新保存之后,Model会通知View更新
  • View 更新变化数据使用户得到反馈

「MVVM」

  • M - Model,Model 代表数据模型,也可以在 Model 中定义数据修改和操作的业务逻辑
  • V - View,View 代表 UI 组件,它负责将数据模型转化为 UI 展现出来
  • VM - ViewModel,ViewModel 监听模型数据的改变和控制视图行为、处理用户交互,简单理解就是一个同步 View 和Model 的对象,连接 Model 和 View

图示

  • View 接收用户交互请求
  • View 将请求转交给ViewModel
  • ViewModel 操作Model数据更新
  • Model 更新完数据,通知ViewModel数据发生变化
  • ViewModel 更新View数据

「两者的区别」

  • ViewModel 替换了Controller在UI层之下
  • ViewModel 向View暴露了它所需要的数据和指令
  • ViewModel 接收来自Model的数据

你可能感兴趣的