MVC是一种主要用来构建UI的架构模式。
针对MVC有很多种解释存在,无论是哪种解释都会强调两点
- 松耦合
- 关注点分离(separation of concerns)
正因为这两点的存在,程序的可测试性、可复用性大大提高
MVC不是一个完整的应用程序架构,它只是一种架构模式,主要用于构建UI这部分的。
工作逻辑
Model:数据模型,用来存储数据,
- Model会负责处理程序数据的逻辑,它含当前级别从存储当中获取数据的逻辑
- 但是有一些Model不包含任何逻辑,例如DTO(Data Transform Object,数据转换对象),这类Model会被串行化到响应到Body里面
View:视图,在程序里负责展示数据
- 在构建API的时候,View就是数据或资源的展示
- 因前后端分离,目前的View通常使用JSON格式
Controller:控制器(大管家角色)
- 监听模型数据的改变和控制视图行为、处理用户交互
- 负责View和Model之间的交互,处理用户的输入
- Controller和View都依赖于Model,Controller还依赖于View
- Controller会选取适当的View,并把View所包含的Model,返回给用户