浅析MVC、MVP、MVVC的异同

MVC

  • 模型(Model):数据保存
  • 视图(View):用户界面。
  • 控制器(Controller):业务逻辑

通信方式:

在这里插入图片描述

通信流程:

  1. 用户通过UI界面的交互触发View响应,View发送指令给Controller
  2. Controller完成业务逻辑之后,要求Model更新数据
  3. Model将新数据发送给View,要求View更新,更新后用户得到反馈

注意:MVC所有通信都是单向的

MVP

MVP模式将MVC的Controller更名为Presenter

通信方式:

在这里插入图片描述

注意:

  1. 各部分之间的通信都是双向
  2. View和Model不发生联系,都通过Presenter传递
  3. View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。

MVVM

MVVM 模式将 Presenter 改名为 ViewModel(视图模型),基本上与 MVP 模式完全一致。

通信方式

在这里插入图片描述

唯一的区别是,View和ViewModel之间是双向绑定

通信流程:

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

典型框架:Vue、Angular

以Vue为例

  • model:对应data中的数据
  • v:模板、UI界面
  • VM:Vue实例对象

MVVM与MVC最大的区别在于MVVM中的ViewModel会自动更新视图

参考文档

MVC,MVP 和 MVVM 的图示 - 阮一峰的网络日志 (ruanyifeng.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值