https://zhuanlan.zhihu.com/p/79899786

解释MVC

spring 是一个开源的框架。

MVC, model view controller , 一种最常见的软件架构。
视图,view , 是用户界面。
控制器 , controller ,业务逻辑。
模型 , model ,数据保存。

三者之间的联系:

  • View 传送指令到 Controller
  • Controller 完成业务逻辑后,要求 Model 改变状态
  • Model 将新的数据发送到 View,用户得到反馈
  • 所有通信都是单向的。View和Model之间的通信是通过Controller来作为桥梁的,也就是说View和Model并不是直接通信;
  • 需要服务器端配合,JavaScript可以在前端修改服务器渲染后的数据,所有通信都是单向的,提交一次反馈一次,通信一次相互制约。

MVC 可以分成两种方式。一种是通过 View 接受指令,传递给 Controller。
bg2015020106.png
另一种是直接通过controller接受指令。
bg2015020107.png

MVP , model view presenter

是mvc的改良模式。不同之处, mvp之间双向通信。
presenter 负责逻辑, 负责view和Model传递之间的通信。

bg2015020109.png
优势:

  • mv完全分离, 修改视图可以不影响模型。

MVVM , model view viewModel

常见框架: Vue、React、Angular
Model 和 ViewModel 之间的交互是双向的

bg2015020110.png

优势:

  • 低耦合
  • 组件化
  • 独立开发(v、m独立)
  • 可测试