应该在只实例化一次的 class 中使用静态变量吗

Should static variables be used in a class that only gets instantiated once

我正在 Java 创建游戏。我有这个 Director class 来设置我的游戏线程,主要处理游戏的运行方式。 class 永远不应该也不会被多次实例化。 class 中的变量是否应该是静态变量?我很好奇 java 编码约定(如果不是所有其他面向对象的语言)对于这样的事情会是什么。

谢谢!

不是真的。

您看到的是Singleton设计模式,其中成员变量不一定是静态的。

不,成员变量不应该是static。唯一相关的是,您需要 Director class 的单个实例来管理您的工作,根据您的代码,这可能是也可能不是 static

现在,如果您不需要从代码周围访问 Director 实例,那么您可以只在某处保留一个实例,否则 singleton 模式可能会有用。这是一种模式,用于管理可从代码中的任何位置访问的 class 的单个实例。

类似于:

class Director {
  private static Director director;

  private Director() {
   ...
  }

  public static Director getInstance() {
    if (director == null)
      director = new Director();

    return director;
  }
}