我正在用 Java 编写游戏。有类似的东西是不好的做法
public class Constants
{
public static Mouse mouse;
public static Keyboard keyboard;
}
(鼠标和键盘是返回输入的对象)
还是最好将具有这些字段的对象传递给需要它们的对象?
谢谢。
通常最好将它们放入一个对象中,或者至少为它们提供 getter 和 setter。原因是当您直接从多个线程访问对象时经常会遇到并发问题(这在图形和界面中经常发生)。因此,除非您知道您正在访问的对象是线程安全的,否则最好以逻辑方式自己处理并发。
你应该没事。请记住,如果您希望从外部源修改常量类中的对象,则必须将常量声明为静态。但是,请确保对象的位置是线程安全的。很多人可能会在这里发布花哨的术语,但你所拥有的应该没问题。
您还可以熟悉单例设计模式。著名的四人组设计模式是常见编程问题的常见解决方案。在 Wikipedia 或 Google 上查找。