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