java - 强制开发人员显式定义配置数据的键

标签 java configuration enums configuration-files

我们正在与多个开发人员合作一个项目,目前从配置文件中检索值有点“狂野西部”:

  • 每个人都使用一些字符串从 Config 对象中检索值
  • 这些 key 分布在多个类和包中
  • 有时甚至没有声明为常量
  • 键的命名不一致,配置文件 (.properties) 看起来很困惑

我想解决这个问题并强制每个人都明确定义他们的配置键。理想情况下,在一个地方可以简化配置键的实际外观。

我正在考虑使用枚举作为键并将我的检索方法变成:

getConfigValue(String key)

变成类似的东西

getConfigValue(ConfigKey)

注意:我使用这种方法是因为 Preferences API 对我来说似乎有点过分,而且我实际上希望将配置放在一个简单的文件中。

这种方法有什么缺点?

最佳答案

首先,FWIW,我认为这是一个好主意。但你确实问了“缺点”是什么,所以:

最大的“缺点”是它将任何需要使用配置数据的类与 ConfigKey 类联系起来。添加配置键过去意味着将字符串添加到您正在处理的代码中;现在,这意味着将 enum 添加到您正在处理的代码中。这(稍微)需要更多工作。

否则,您可能不会显着增加相互依赖性,因为我假设 getConfigValue 所属的类是您定义 enum 的类.

关于java - 强制开发人员显式定义配置数据的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10653109/

相关文章:

linux - DBus 配置通配符

c++ - 为什么具有固定底层 char 类型的枚举的值解析为 fct(int) 而不是 fct(char)?

iphone - 在 Objective-C 中选择一个随机枚举

java - Swing JOptionPane背景颜色不同

Java:流中的消费者接口(interface)无法按预期工作

java - GoogleMap v2 Android 中的 Z 排序标记

java - ServiceRegistry 构建 session 工厂的作用?

bash - 跨多个脚本定义公共(public)变量?

java.lang.OutOfMemoryError 与 DOM

enums - 为 Vaadin 14 Web 应用程序中的枚举支持的单选按钮生成标签