如何重构从属性文件读取的所谓常量值

时间:2019-06-24 21:31:00

标签: java java-8 constants

我目前正在重构旧版Java代码,并发现以下编码约定:

public class MyClass {
  public static final String CONST_1 = PropertyReader.getProperties("const 1");//PropertyReader will read properties by means of ResourceBundle
  public static final String CONST_2 = PropertyReader.getProperties("const 2");
  //Many similary constant values retrieved from the property file
}

从属性文件中检索static final String的值。我的编程本能使我感到这可能是一种反模式。

问题:以上编码约定是否很常见?如果不是,如何将其重构为更具可读性和可维护性?

1 个答案:

答案 0 :(得分:0)

人们有很多常见的方法:

配置加载器

我们团队使用的模式是有一个ConfigurationLoader来接收一个文件。在程序的开头,我们运行ConfigurationLoader.load(),它将读取文件并填充各个字段。我们控制静态吸气剂的读取属性,以确保ConfigurationLoader已被初始化。

静态初始值设定器

您可以使用静态初始化程序填充字段:

public static class Constants {
    public static final String string1;

    static {
        string1 = getWhateverConfigString();
    }
}

但是,我认为您的代码库已经可以正常运行,除非PropertyReader多次访问同一文件。