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