一个模板,模板引擎用它来生成 HTML;
从查询中接收(或者从 Model 实体中提取)原始数据,持有这些模板会用到的数据 。它还要封装复杂的展现逻辑,来简化Model 。这样我们才能将 View 和 Model 完全隔离开:
- Model 中的变化(比如实体结构的变化)会上升并影响 ViewModel,但不会影响Model;
- 复杂的展现逻辑被封装到了 ViewModel 之中,因此不会被泄露到领域(DDD领域设计的domain)之中;
- Model的依赖变得很清晰,因为它们必须在 ViewModel 中设置 。
接收 HTTP 请求,触发命令或查询,使用查询返回的数据、ViewModel、模板和模板引擎生成 HTML 并将它返回给客户端 。所有 View 的交互都要经过 Presenter 。

文章插图
快速区分几种架构:
- MVC:初步分离Model、View 。
- MVP:Controller转变为Presenter模型和视图彻底分离 。
- MVVM:废弃控制器层 。增加ViewModel,实现Model和View的双向驱动 。
- MVPVM:保留Presenter做页面交互,新增ViewModel给View做数据接收和展示 。
https://herbertograca.com/2017/08/17/mvc-and-its-variants/
经验总结扩展阅读
- 轻松赚大钱的四个星座 六周之内注定富贵盈门
- 六言绝句爱国诗 历史上霸气的六言绝句
- 软件工程就业方向及前景 未来发展好不好
- 软件工程师工资一个月多少钱 每月挣的多吗
- Windows 环境搭建 PostgreSQL 逻辑复制高可用架构数据库服务
- 2023年农历十月二十六办婚礼好不好 这天宜结婚吗
- 2024年八月十六出生余姓男孩名字生辰八字五行查询
- 2024年八月十六出生林姓女孩名字生辰八字五行查询
- 2024年八月十六出生谢姓男孩名字生辰八字五行查询
- 2024年八月十六出生蔡姓男孩名字生辰八字五行查询