如何设计一些常量是否由多个类使用

moh*_*hit 8 java

我几个常用的常量被多个类使用.

在这种情况下,最有效的设计方法是什么:

  1. 我应该重新定义每个班级的常数吗?
  2. 或者我应该在公共类中分离这些常量,并在每个类中使用常量(在单独的类中)?

或者还有其他更好的方法吗?

注意: -我正在寻找适用于此的最佳OO技术.

Rah*_*thi 0

您可以尝试创建一个包含所有常量的类(即第二种方法)。

例如:

classname :  MyConstantsClass.java    
public static final String SOME_CONSTANT="value";
Run Code Online (Sandbox Code Playgroud)

然后像这样使用它

MyConstantsClass.SOME_CONSTANT
Run Code Online (Sandbox Code Playgroud)

正如有些人建议使用接口来创建常量,那么我认为这不是一个好的选择。由于使用接口创建常量也有一定的缺点:

  • 接口的使用不允许实现将常量转换为可见/人类可读表示的机制。
  • 如果常量是“实现细节”,则接口可能不是该值的自然位置(CodeSmells、ListenToTheCode)。
  • 由于 Java 编译器优化,如果常量发生更改,则需要对所有使用常量的类进行完整的代码重新编译。仅更改接口并重新编译它是行不通的(然而,所有常量定义为“static final”的情况都是如此)

请参考: