MVC、MVP、MVVM 架构详解
1. 前言
在软件开发中,界面与业务逻辑分离是代码可维护、可扩展、可测试的关键。
MVC、MVP、MVVM 是目前最主流的三种架构设计模式,它们的核心目标一致: 解耦 View(界面)与 Model(数据/业务),让结构更清晰。
本文不仅提供可视化图解,还对每个架构的可视化逻辑做深度解析,帮你理解'为什么这么设计''每个箭头/符号代表什么'。
2. 三大核心角色统一说明
无论 MVC / MVP / MVVM,都由以下 3 个基础角色构成:
- View(视图)
用户直接看到的界面。
职责:展示数据、接收用户操作(点击、输入、滑动等)。
可视化标识:始终放在最上层,代表用户直接交互层。 - Model(模型)
数据与业务的核心。
职责:数据处理、业务逻辑、数据库操作、计算、验证。
可视化标识:始终放在最下层,代表底层数据/业务层。 - 中间层(Controller / Presenter / ViewModel)
View 与 Model 之间的调度者。
可视化标识:始终放在中间层,代表'桥梁/调度中心'。
3. MVC 架构(Model-View-Controller)
定位
最经典的架构模式,Web 后端首选。
🎨 可视化图画(深度解析版)
┌───────────────┐ 🔹 上层:用户交互层,主动发起请求 │ View │ 🔹 核心:自主展示,有渲染决策权 │ (界面) │ └───────┬───────┘ │ 🔹 单向箭头:View → Controller 仅传递'操作请求' ▼ ┌───────────────┐ 🔹 中间层:纯中转,无展示决策权 │ Controller │ 🔹 核心:接收请求→调用Model→返回数据 │ (控制器) │ └───────┬───────┘ │ 🔹 单向箭头:Controller → Model 仅传递'数据处理指令' ▼ ┌───────────────┐ 🔹 下层:纯数据/业务处理,无界面感知 │ Model │ 🔹 核心:处理数据后,仅返回结果给Controller │(数据/业务) │ └───────────────┘ │ │ 🔹 单向箭头:Model → Controller 仅返回'处理结果' ▼ ┌───────────────┐ │ Controller │ 🔹 中间层二次处理:将Model结果整理为View可展示格式 │ (控制器) │ └───────┬───────┘ │ 🔹 单向箭头:Controller → View 仅传递'整理后的数据' ▼ ┌───────────────┐ │ View │ 🔹 最终:View自主决定数据渲染方式(排版/样式) │ (界面) │ └───────────────┘
可视化深度解析
- 层级逻辑:严格的'上→中→下→中→上'单向层级流转,代表'用户操作→请求中转→数据处理→结果返回→界面展示'的完整闭环;
- 箭头含义:所有箭头均为,代表'请求/数据只能按固定方向传递',View 无法直接调用 Model,Model 也无法直接通知 View;

