MVVM、MVC、MVP 解释

以下是 MVVM、MVC、MVP 及可能混淆的 MVM 模式的明确解释:

1. MVC(Model-View-Controller)

  • 核心组件:

    • Model:数据与业务逻辑(如数据库操作、计算)
    • View:UI 展示层,直接渲染 Model 数据
    • Controller:接收用户输入,协调 Model 和 View 的更新
  • 数据流向:

用户操作 → Controller → Model变更 → View更新
  • 典型应用
    • 服务端框架(Ruby on Rails)
    • 前端框架(Backbone.js)

2. MVP(Model-View-Presenter)

  • 核心组件:
    • Model:同 MVC
    • View:负责 UI 展示,将用户操作传递给 Presenter
    • Presenter:作为 View 和 Model 的中间层,处理所有逻辑
  • 数据流向
用户操作 → View → Presenter → Model变更 → Presenter → View更新
  • 典型应用
    • Android 开发(Google 推荐架构)
    • 前端复杂表单处理

3. MVVM(Model-View-ViewModel)

  • 核心组件

    • Model:同 MVC
    • View:负责 UI 展示,绑定 ViewModel 的数据
    • ViewModel:通过数据绑定和事件监听实现 View 和 Model 的双向同步
  • 数据流向

View变更 ↔ ViewModel ↔ Model变更
  • 典型应用
    • Vue.js、Angular、Knockout.js
    • React(配合 Redux 等状态管理库)

4. MVM(Model-View-Model)

  • 注意:这是一个容易混淆的概念,实际开发中并不存在标准的 “MVM” 模式。
  • 可能的误解
    部分人将 MVVM 简称为 MVM,但这种缩写不规范。
    少数场景中,“MVM” 可能指代Model-View-Mediator(类似 MVP 的变体),但非常罕见。
  • 建议:面试中避免提及 MVM,以防概念混淆。
模式核心思想数据流动典型框架
MVC控制器协调视图与模型单向(C 主导)Backbone.js、Rails
MVP演示者完全解耦视图与模型单向(P 主导)Android
MVVM通过 ViewModel 实现双向数据绑定双向(自动同步Vue.js、Angular
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值