在配置文件中大量使用列表

Intensive use of lists in configuration files

在重构一些遗留系统 (java) 时,我遇到了一个大量使用列表的配置文件。 主要是有一个属性定义了引用参数列表,后面还有对应值的属性,比如:

referencesNames = name1, name2, ...
valuesList1 = name1Value, name2Value, ...
valuesList2 = name1Value, name2Value, ...

问题 - 列表太多而且太长。

我的一个想法是删除参考列表并创建类似的东西:

name1Values = value1, value2, ...
name2Values = value1, value2, ...

尽管如此,这些列表仍然很长,而且很难正确定义它们的值。 另外,引用名称现在是硬编码的,所以如果我想添加一个新的,我必须打开代码来处理相应的 属性。有什么建议吗?

Java配置文件有两种常见选择:Properties和XML。

转换为 XML 有点复杂,但允许更复杂的配置。 XML 究竟是什么样子取决于你,但这里有一个例子:

<Configuration>
    <Reference name="name1">
        <Value1>name1Value</Value1>
        <Value2>name1Value</Value2>
        ...
    </Reference>
    ...
</Configuration>

使用 属性 文件,可以使用限定名称删除这些列表:

Value1.name1    name1Value
Value2.name1    name1Value

或者反过来:

name1.Value1    name1Value
name1.Value2    name1Value