【发布时间】:2022-01-18 03:55:16
【问题描述】:
我是 Java 新手。 假设我想用 Swing 或其他任何东西制作一个简单的游戏。例如,我如何以及在何处存储诸如玩家得分或进度之类的变量,以便我可以从不同的类访问它(在游戏期间和在数据库中持久化之前)。我喜欢我们在 React 中使用 useContext 的方式。我还在 PHP 的会话中使用了全局变量。
【问题讨论】:
-
我强烈建议不要使用“全局状态”。我宁愿建议实现一个获得高分的域对象或服务。然后可以在需要的地方注入和调用该服务。
-
我知道要做的是这个......服务服务=新服务(); service.setScore(score),但该对象是实例化对象的本地对象,不与其他类共享。
-
鉴于您正在谈论一个“简单”的游戏,并且可能不想过火……有点骇人听闻答案:使用单例。例如,一个 enum 有一个为您提供该 Service 对象的实例。或者在某处使用
public static Service getService()方法的老派方式。然后,您所有需要该服务的代码都可以从那里提取它(而不是考虑将它提供给您的对象的依赖注入框架)。 -
看看model–view–controller 设计模式。对于一个简单的游戏,您创建一个游戏模型来保持状态。高分可以保存在主模型中,也可以保存在单个
Player类实例中。
标签: java design-patterns