MVC和MVVM

MVC

MVCModel View Controller的缩写。从名字可以看出它由三部分组成:ModelViewController

  • Model代表业务逻辑模型(并非数据模型)。
  • View是视图,用来显示用户交互界面。
  • Controller是控制器,用来调节ModleView的交互。

MVC中,Controller和其他部分之间的通信都是双向的。而ViewModel之间没有任何通信关系。
在这里插入图片描述

MVC有两个缺点:

  1. 厚重的Controller
    Model应包括数据和操作数据的业务逻辑。但是在实践中,Model的业务逻辑都被放到Controller
  2. 较差的可测试性
    由于Controller混合了视图处理逻辑和业务逻辑,不便单元测试。

MVVM

MVVMModel-View-ViewModel 的缩写。从名字可以看出它由三部分组成:ModelViewViewModel

  • Model代表数据模型,也可以在Model中定义操作数据的业务逻辑。
  • View 代表 UI(用户界面) 组件,它负责将数据模型转化成 UI 展现出来。
  • View-Model 监听模型数据的改变和控制视图行为、处理用户交互。

MVVM架构下,ViewModel 之间并没有直接的联系,而是通过ViewModel进行交互,ModelViewModel 之间的交互是双向的, 因此 View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。
在这里插入图片描述
ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而ViewModel 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值