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

时间:2016-03-02 13:03:51

标签: oop design-patterns

项目中有一些常量和枚举,每个都由其他一些类使用。

作为一种设计模式,为常量和枚举定义创建一个类是否可以接受?或者有更好的方法来定义和使用这些常量吗?

2 个答案:

答案 0 :(得分:1)

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

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

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

另一个解决方案是创建一个Service来提供数据库中的属性/常量。您可以区分不同环境中的值,但这是另一个故事。

答案 1 :(得分:0)

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