从 MVC 到 MVVM 软件架构


前言

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之间有什么区别啊?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值