[软件开发技术栈]从MVVM到MVC
今天继续研究了软件的框架,与GPT老师进行了促膝长谈,研究了MVVM框架,它具体是这样介绍的:
1. Model(数据层)
Model 主要负责数据的处理和存储,它独立于视图和界面还有训练控制。Model 层的主要职责是:
- 处理来自传感器的实时数据(如心率、血氧、肌电等)。
- 提供对数据的访问接口(如读取、更新数据)。
- 提供与训练相关的 核心数据。
在这个框架中,PhysiologyModel 类是其中一个关键组件,它用于接收传感器数据,处理并存储这些数据,供其他层次使用。
- 核心功能:
- 接收数据并更新。
- 通过信号(如 heartRateChanged)向上层发出数据变化通知。
2. ViewModel(视图模型层)
ViewModel 是视图和模型之间的桥梁,它负责从 Model 层获取数据,并将其转化为可以直接用于 UI 的形式,同时也接收来自 View 的用户输入(如按钮点击),并传递给模型或训练管理器。在这个架构中,TrainingViewModel 是视图模型类,它负责:
- 提供训练状态信息(如正在训练、暂停、停止等)。
- 将 View 和 TrainingManager 进行绑定,传递用户输入的命令(如开始训练、暂停训练等)。
- 核心功能:
- 映射视图和数据之间的交互。
- 提供 Q_INVOKABLE 方法供 QML 调用(例如 startTraining, stopTraining)。
- 从 Model 中获取复杂的需要显示在上位机上的数据(例如,实时生理数据、传感器的状态等)。
- 将这些数据转换成适合 QML 控件显示的格式。比如,Model 可能存储的是原始的数值数据,而 ViewModel 会将其转化为图表的坐标、阈值的设置等。
- 处理 View 的命令或事件,提供给 Model 执行相应的操作。
3. View(视图层)
View 层是用户与程序的交互界面。在这个架构中,View 是用 QML 来实现的,它显示了用户界面元素,如按钮、标签、进度条等,并通过 ViewModel 获取数据更新和用户命令的响应。
- 核心功能:
- 显示数据(如心率、训练状态)。
- 响应用户的操作(如点击按钮)。
- 通过 ViewModel 发送命令或请求数据更新。
也就是说没有单元模块处理算法逻辑的,后经过了解牵扯到另外一个框架即:MVC
MVC(Model-View-Controller)框架概述
Model:负责存储和管理数据,处理所有的业务逻辑。它是数据的核心,直接与数据库、网络接口或其他数据源交互。
View:负责显示用户界面,展示数据(通常由
Model
提供)。它只关注界面的布局和用户交互,不处理数据的业务逻辑。Controller:作为
Model
和View
之间的中介,负责处理用户输入并调用Model
中的方法来更新数据或改变状态。它还可能根据Model
中的数据更新View
。
也就是需要在MVVM框架的基础之上需要添加一个C(control模块,需要将model指针作为参量)
完结,撒花