加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 19:18:28 所属栏目:Java 来源:网络整理
导读:我一直在读,在一个从未实例化的类中使用静态变量是一个坏主意,因为当类不再存在于内存中时,变量可能会变为null.说得通. 这就是我一直在做的一个例子 public class MasterParameters {public static boolean DEBUG_MODE = true;protected MasterParameters(){

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

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

public class MasterParameters {

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

}

我也听说使用Singleton同样糟糕,人们建议使用“依赖注入” – 但这对于我需要的东西来说似乎很复杂和过度.我只是不看正确的例子吗?

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

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

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()) {....}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读