定义单个类中的项目的所有常量是否可以接受?
答
这取决于问题域。一般来说,将它们保留在Java枚举中是相当标准的做法。问题是 - 你想如何使用这些常量?我有这样的经验,由于缺乏过去常量的开发人员的知识,常量在接口/枚举中被保留被重复和创建。在结果中,有许多文件,如Constants.java
,BusinessLogic.java
,AppConstants.java
等。它导致很大的压倒性的目的,然后你不知道是否有一些不变,可以说APP_MODE
应该使用从Constants.java
或AppConstants.java
?
其中一个解决方案是将这些常量保存在一个(或多个?)属性文件中,并使用spring'@Value
注释来注入thme。 您可以使用一些前缀,以点分隔的建筑群进行分组。
属性文件的优点之一是您保留了一个使用属性的Java逻辑,但您仍然可以提供属性文件(可能因应用程序而异)。很多的灵活性,没有冗余。
另一个解决方案是创建一个Service
以从数据库提供属性/常量。你可以区分不同环境中的价值观,但那是另一回事。
答
如果我是你,我通过包创建一个常量容器类packege。只需将逻辑上相关的部分放在一起。否则,你会增加耦合和依赖。最常用的常量(与领域无关的问题)发生在应用程序包的常量容器类中。