我有两个类:GUI
和Game
,分别处理 GUI 逻辑和游戏逻辑。
我应该做一个GUI
in的实例Game
,还是一个Game
in的实例GUI
。
如果它有任何区别:它是Java。
更多解释:
我正在用 Java 制作一个生命克隆游戏,但在更新我的 GUI 时遇到了一些问题。在继续解决这些问题之前,我想知道使用 GUI 的正确方法是什么。
我有两个类:GUI
和Game
,分别处理 GUI 逻辑和游戏逻辑。
我应该做一个GUI
in的实例Game
,还是一个Game
in的实例GUI
。
如果它有任何区别:它是Java。
更多解释:
我正在用 Java 制作一个生命克隆游戏,但在更新我的 GUI 时遇到了一些问题。在继续解决这些问题之前,我想知道使用 GUI 的正确方法是什么。
两者都不。
我建议您按照Model-View-Controller习惯用法构建您的应用程序。
游戏状态(模型)和它的视觉表示(视图)不应相互依赖。两者都应该由一个控制器(或多个控制器)创建和操作。
这种应用程序设计的优点是您可以轻松地更改其中一个组件(甚至完全替换它们),而无需接触另一个组件。
通常,您可以将您的应用程序视为分层的。可以假设 UI 层位于应用程序层的“之上”。关于依赖关系,这是相互影响的,因此UI
可以依赖Game
, bot 而不是相反。
你可以这样想——“我应该能够改变哪一部分而不强迫另一部分也改变?” 我的猜测是,您希望能够在UI
不更改Game
. 反过来,它的意义就大大降低了。因此,结果再次是UI
应该依赖于Game
并包含对它的引用。
编辑:关于 MVC 架构。使用 MVC 并不意味着视图只能通过控制器从模型中检索它的值。应该使用控制器更改值,但视图通常仍然具有对模型的引用来显示它。控制器通常对模型显示没有附加价值。