应该在只实例化一次的 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;
}
}
我正在 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;
}
}