六 软件架构MVC架构历史( 二 )


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

    文章插图
    快速区分几种架构:
    1. MVC:初步分离Model、View 。
    2. MVP:Controller转变为Presenter模型和视图彻底分离 。
    3. MVVM:废弃控制器层 。增加ViewModel,实现Model和View的双向驱动 。
    4. MVPVM:保留Presenter做页面交互,新增ViewModel给View做数据接收和展示 。
    =========参考============
    https://herbertograca.com/2017/08/17/mvc-and-its-variants/

    经验总结扩展阅读