定义单个类中的项目的所有常量是否可以接受?

定义单个类中的项目的所有常量是否可以接受?

问题描述:

项目中有一些常量和枚举,每个类都被其他类使用。定义单个类中的项目的所有常量是否可以接受?

作为设计模式,是否可以为常量和枚举定义创建类?还是有更好的方法来定义和使用这些常量?

这取决于问题域。一般来说,将它们保留在Java枚举中是相当标准的做法。问题是 - 你想如何使用这些常量?我有这样的经验,由于缺乏过去常量的开发人员的知识,常量在接口/枚举中被保留被重复和创建。在结果中,有许多文件,如Constants.java,BusinessLogic.java,AppConstants.java等。它导致很大的压倒性的目的,然后你不知道是否有一些不变,可以说APP_MODE应该使用从Constants.javaAppConstants.java

其中一个解决方案是将这些常量保存在一个(或多个?)属性文件中,并使用spring'@Value注释来注入thme。 您可以使用一些前缀,以点分隔的建筑群进行分组。

属性文件的优点之一是您保留了一个使用属性的Java逻辑,但您仍然可以提供属性文件(可能因应用程序而异)。很多的灵活性,没有冗余。

另一个解决方案是创建一个Service以从数据库提供属性/常量。你可以区分不同环境中的价值观,但那是另一回事。

如果我是你,我通过包创建一个常量容器类packege。只需将逻辑上相关的部分放在一起。否则,你会增加耦合和依赖。最常用的常量(与领域无关的问题)发生在应用程序包的常量容器类中。