模型-视图-控制器模式
模式起源于软件工程中重要的设计原则-关注点分离(SoC)。将应用切分成不同的部分,每个部分只有一个核心关注点,这样的分离可以简化开发和维护
MVC模式更多的被认为是一种架构模式。模型是应用的信息来源,是应用处理业务逻辑和规则,存储和调用数据。视图是应用的门面,是应用与用户交互的部分,或者应用输出的一些可被观测的结果。视图之负责展示数据(以多种方式)而不负责存储数据或者校验数据。控制器是模型和视图之间的链接,模型和视图之间的通信通过控制器来完成。
典型方式
- 用户通过输入出发视图
- 视图把用户操作通知控制器
- 控制器处理用户输入,并与模型交互
- 模型执行所有必要的检验和状态改变,并将结果返回给控制器
- 控制器在调用视图API来合理的更新和显示输出
应用
要求
- 模型很智能, 控制器很瘦, 视图很傻瓜
智能模型
- 输入数据校验,业务逻辑
- 处理应用状态
- 访问数据库
- 不依赖UI
瘦控制器
- 与视图API交互
- 与模型API交互
- 不直接访问数据
- 不包含校验/业务逻辑
傻瓜视图
- 展示数据
- 与前端交互
- 不存储数据
- 不校验
- 不访问应用数据
总结
尾记
(以下内容仅仅是自己工作中的设计方式,可以忽略)
以Websocket为基础的视图(View)
需要创立独立的controller
模型部分分为设备端和数据分析端