我有关于 MVC 模式的问题。
例如:我有一个简单的应用程序,它在列表框中显示一些对象(例如用户数据集),也许还有一些与存储的数据交互的按钮。
根据我的理解,模型应该提供
User
类及其属性以及用户交互背后的业务逻辑。
我必须在哪里存放这些物品?我见过一些示例 MVC 程序,有时控制器类中存储了一个集合。但为什么呢?
网络上的许多解释表明模型类处理数据层。对我来说,ListObject 是模型类的具体实例。
有人可以向我解释一下我应该在哪里存储在 GUI 中查看的数据吗?
谢谢!
我阅读了很多博客和社区,但没有找到任何有用的解释。
> 我必须在哪里存储对象?
这取决于你使用的编程语言,它实现MVC模式的能力,当然还有你对“它可能如何”或“它应该如何”的想象。换句话说,它可以是控制器,也可以是模型。
> 我看过一些示例 MVC 程序,有时会在 Controller 类中存储一个集合。但为什么呢?
一些框架提出了对分离视图、模型以及它们之间的层(控制器或视图模型)的大力支持,例如 Java Spring(MVC - 模型/视图/控制器)或 WPF(MVVM - 模型/视图/视图模型)。 例如,WPF 强烈支持以这种方式组织代码,即应加载到视图中的数据可以作为可观察对象或可观察集合存储在视图模型中(在控制器模拟中读取)。 在这种情况下,动态更改可观察对象的某些属性不需要您进行任何额外的编程来使用新值更新视图。
> 有人可以向我解释一下我应该在哪里存储在 GUI 中查看的数据吗?
由于 MVC 中的控制器是视图和模型之间的一层,因此应该直接加载到视图中的数据可以存储在控制器中,以缩短到达视图的路径。 如果数据应该被预处理——例如验证、过滤等等,那么首先将它们存储在模型中进行预处理是有意义的。 一般来说,MVC 可以有非常不同的实现,其细节取决于您使用的语言/框架以及您自己的想象力。