前言

MVC、MVP 和 MVVM 都是常见的软件架构设计模式(一种架构模式往往使用了多种设计模式)。


一、MVC

MVC 将应用抽象为:

  • View 层是界面。
  • Model 层是业务逻辑。
  • Controller 层用来调度 View 层和 Model 层。将用户界面和业务逻辑合理的组织在一起,起粘合剂的效果,所以 Controller 中的内容能少则少,这样才能提供最大的灵活性。
    在这里插入图片描述

在 MVC 模式中,Model 和 View 可能有耦合,因为 MVC 仅仅将应用抽象,并未成功的限制数据流。

【拓展】从设计模式角度看 MVC:组成 MVC 的三个模式分别是组合模式、策咯模式、观察者模式。

  • View层,单独实现了组合模式。
  • Model层和View层,实现了观察者模式。
  • View层和Controller层,实现了策咯模式。

二、MVP

MVP 模式将 MVC 的 Controller 改名为 Presenter。同时,改变了通信方式:

  • Model 和 View 之间不直接通信,都通过 Presenter 通信。
  • View 和 Presenter 是双向通信。
  • Model 和 Presenter 也是双向通信。
    在这里插入图片描述
    MVP 模式中,Presenter 负担很重,所有逻辑都部署在那里——Presenter 需要知道 View 和 Model 的结构,并且在 Model 变化时候需要手动操作 View,增加编码负担,降低代码维护性。

三、MVVM

MVVM 用 ViewModel 代替了 Presenter。ViewModel 会自动同步数据到视图——MVVM 自动从 Model 映射到 View(实现方式是模板渲染),不需要用户手动操作视图。这样代码更简单不易出错,代码更好阅读和维护。
在这里插入图片描述
典型的实现是 Vue.js。




【参考文章】
深入理解MVC
mvc和mvvm之间有什么区别啊?

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐