我已经阅读了有关 MVC 的信息,但对如何使用 Swing 在 Java 中实现该概念存有疑问。这就是我想要的:
模型:
ListOfThings包含一个Collection对象Thing。
控制器:
Controller实例化ListOfThings并使用“添加”方法填充它(在内部创建一个新的Thing并将其添加到Collection)
视图:一个 Swing 接口,ListOfThingsPanel其中包含ThingPanel表示模型的组件。两者都扩展JPanel。ThingPanel包含各种组件,用于显示Thing它所链接的数据。它还有一个按钮,可以在列表中添加一个新的(空的)东西。click 事件调用Controller'saddThing()方法,该方法要求在其列表ListOfThings中添加一个新的。有一个事件/侦听器系统并侦听它以了解何时应该刷新视图。ThingListOfThingsListOfThingsPanel
我这样做是否正确地遵循了 MVC 概念?
更新: 我仍在学习 Java,但我有编码经验,并且更愿意学习理论并在使用预制框架之前以自己的方式尝试它。虽然我知道 Swing 实现了 MVC 模式,但我已经阅读了它以特定方式(视图和控制器相结合)实现它,这可能不是最好的,并且不适用于其他情况。在我确定“Swing MVC”与“MVC”没有区别之前,我有点谨慎,或者这些差异不会影响我对基本思想的理解。
对我来说重要的一件事是学习真正将模型与视图分开,以允许我最终创建各种类型的各种视图(例如 Swing 以及控制台或更新到 JavaFX)这就是为什么我想避免任何事情在视图部分本身之外摆动特定。