gpt4 book ai didi

java - 全局配置应该使用什么设计模式

转载 作者:搜寻专家 更新时间:2023-10-31 20:14:55 24 4
gpt4 key购买 nike

我一直在读到,在从未实例化的类中使用静态变量是个坏主意,因为当类不再存在于内存中时,变量可能会变为 null。有道理。

这就是我一直在做的一个例子

public class MasterParameters {

public static boolean DEBUG_MODE = true;
protected MasterParameters(){
// Exists only to defeat instantiation.
}

我还听说使用 Singleton 也同样糟糕,人们建议使用“依赖注入(inject)”——然而,这对于我需要的东西来说似乎很复杂和矫枉过正。我只是没有看到正确的例子吗?

我想要一种简单的方法来在一个地方 定义一个变量,该变量可以从我的代码中的任何位置访问,而无需传递参数对象。你有什么建议?谢谢:)

最佳答案

我会建议单例模式(我知道很多人不喜欢它),但它似乎是最简单的解决方案。看一下这段代码:

public enum Constants {
INSTANCE;

public void isInDebugMode() {
return true;
}
}

以下是您如何使用它(甚至来自静态代码):

if(Constants.INSTANCE.isInDebugMode()) {....}

您可能还会考虑一些更复杂的解决方案:

public enum Constants {
DEBUG(true),
PRINT_VARS(false);

private boolean enabled;

private Constants(boolean enabled) {
this.enabled = enabled;
}

public boolean isEnabled() {
return enabled;
}
}

示例用法:

if(Constants.DEBUG.isEnabled()) {....}

关于java - 全局配置应该使用什么设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9591137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com