我认为 Qt 中用于模型/视图控件的术语是有缺陷的。在 他们的解释页面中,他们声明,他们通过合并 View 和 Controller 将 MVC 简化为 MV,并给出了以下图片:

然而我认为,他们错误地命名了物体的角色,我认为,
- 他们所谓的视图与合并控制器实际上只是一个视图。
- 他们所谓的模型实际上只是控制器。
- 如果你真的想有一个模型,它将是他们的“数据”的地方。
我说的通常和理智的方式,你会使用 Qt 模型/视图组件在您的应用程序。
原因如下:
- 这是典型的 Qt 组件,不需要向对象添加任何特定于 Controller 的逻辑)
- 这几乎不是一个模型,因为您应该实现几个 Qt 方法,如 rowCount、 columnCount、 data 等,这些方法与您的模型没有任何关系。事实上,控制器中有典型的模型方法。当然,您可以在这里同时实现 Controller 还有模型逻辑,但首先,这将是相当糟糕的代码设计,其次,您将合并 Controller 和 Model,而不是 Controller 和 View。
- 正如理由2所说。如果您想分离模型逻辑,那么它肯定不是图片上的蓝色框,而是虚线“数据”框(当然是与实际数据通信)。
是 Qt 在他们的术语中是错误的,还是只是我不明白?(顺便说一句,这不是学术问题的原因是,我已经开始编写我的项目后,他们的命名和我很快发现,代码显然是不正确的。只有在那之后,我才意识到,我不应该尝试把模型逻辑放到他们所谓的模型中)