【发布时间】:2012-03-07 04:27:18
【问题描述】:
我一直在阅读,在从未实例化的类中使用静态变量是一个坏主意,因为当类不再在内存中时,变量可能会变为 null。有道理。
这是我一直在做的一个例子
public class MasterParameters {
public static boolean DEBUG_MODE = true;
protected MasterParameters(){
// Exists only to defeat instantiation.
}
}
我还听说使用 Singleton 也同样糟糕,人们建议使用“依赖注入”——不过,这对于我需要的东西来说似乎很复杂而且矫枉过正。我只是没有看正确的例子吗?
我想要一种简单的方法来在一个位置定义一个变量,该变量可以从我的代码中的任何位置访问,而无需传递参数对象。你有什么建议? 谢谢:)
【问题讨论】:
-
“我想要一种简单的方法来在一个位置定义一个变量,该变量可以从我的代码中的任何位置访问,而无需传递参数对象。你有什么建议?”如果这是你想要的,它是一个单例,或者一个全局变量或者你喜欢的任何名称。
-
你的第一段确实没有有意义。您误解了您正在阅读的内容,或者您的参考文献非常糟糕。在 Java 中,东西不会从内存中“消失”。
-
您的示例实际上是单例模式的一种形式。
-
这很高兴知道,你有来源吗?我读到堆栈溢出说该类最终将被卸载并且变量将为空,这让我感到害怕并让我首先发布这个。我想你不可能相信一切。不过,有一些支持增加了可信度。
-
您应该引用“消失的值”,这样我就可以否决它;完全是垃圾。
标签: java design-patterns configuration global-variables