MVC是一种主要用来构建UI的架构模式。

针对MVC有很多种解释存在,无论是哪种解释都会强调两点

  1. 松耦合
  2. 关注点分离(separation of concerns)

正因为这两点的存在,程序的可测试性、可复用性大大提高

MVC不是一个完整的应用程序架构,它只是一种架构模式,主要用于构建UI这部分的。

工作逻辑

Model:数据模型,用来存储数据,

  1. Model会负责处理程序数据的逻辑,它含当前级别从存储当中获取数据的逻辑
  2. 但是有一些Model不包含任何逻辑,例如DTO(Data Transform Object,数据转换对象),这类Model会被串行化到响应到Body里面

View:视图,在程序里负责展示数据

  • 在构建API的时候,View就是数据或资源的展示
  • 因前后端分离,目前的View通常使用JSON格式

Controller:控制器(大管家角色)

  • 监听模型数据的改变和控制视图行为、处理用户交互
  • 负责View和Model之间的交互,处理用户的输入

image.png

  1. Controller和View都依赖于Model,Controller还依赖于View
  2. Controller会选取适当的View,并把View所包含的Model,返回给用户

相关链接

  1. apple开发文档-MVC