mvc框架的目标是将应用分成三个功能部分,每个部分都包含数据和逻辑
模型
负责管理用户使用的数据
领域模型
包含了应用的数据与相应的操作,及包含转换、创建、存储和操作数据的规则,通常称为模型逻辑
领域模型
- 包含 - 领域数据
- 创建、管理和修改领域数据的逻辑
- 提供清晰的,可访问和操作模型数据的API
 
- 不包含 - 暴露模型数据的获取方式或者管理方式
- 根据用户操作修改模型的逻辑(控制器职责)
- 将数据展示给用户的逻辑(视图职责)
 
视图模型
从控制器传递到视图的数据,视图将这类数据展示给用户
视图
视图模型展示给用户
- 包含 - 将数据呈现给用户的逻辑或者标记
 
- 不包含 - 复杂的逻辑(控制器)
- 创建、存储和操作模型的逻辑
 
控制器
负责响应用户交互,同时扮演者模型与视图之间的桥梁角色
- 包含 - 初始化模型的逻辑
- 视图展示模型中的数据的逻辑和行为
- 根据用户操作更新模型的逻辑和行为
 
- 不包含 - 向用户展示数据的逻辑(视图职责)
- 处理数据持久化的逻辑(模型职责)
- 操作自己领域之外的数据
 
交叉部分
- 日志功能
- 授权功能
