项目中有一些常量和枚举,每个都由其他一些类使用。
作为一种设计模式,为常量和枚举定义创建一个类是否可以接受?或者有更好的方法来定义和使用这些常量吗?
答案 0 :(得分:1)
这取决于问题域。一般来说,将它们保存在Java枚举中是相当标准的做法。问题是 - 你想如何使用这些常数?我有这样的经验,由于缺乏过去常量的开发人员的知识,在接口/枚举中保持的常量被重复和一遍又一遍地创建。在结果中,有许多文件Constants.java
,BusinessLogic.java
,AppConstants.java
等等。它会导致目标大量压倒,然后你就不知道是否有一些常数,让我们说APP_MODE
应该使用Constants.java
或AppConstants.java
?
其中一个解决方案是将这些常量保存在一个(或多个?)属性文件中,然后使用spring' @Value
注释。
您可以使用一些前缀来分组,构建组以点分隔。
属性文件的一个优点是您保留一个使用属性的Java逻辑,但您仍然可以提供属性文件(可能因应用程序而异)。很多灵活性,没有冗余。
另一个解决方案是创建一个Service
来提供数据库中的属性/常量。您可以区分不同环境中的值,但这是另一个故事。
答案 1 :(得分:0)
如果我是你,我会按包创建一个常量容器类packege。只是将逻辑上连贯的部分放在一起。否则,您将增加耦合和依赖性。最常见的常量(与问题域无关的常量)发生在实用程序包的常量容器类中。