我几个常用的常量被多个类使用.
在这种情况下,最有效的设计方法是什么:
或者还有其他更好的方法吗?
注意: -我正在寻找适用于此的最佳OO技术.
您可以尝试创建一个包含所有常量的类(即第二种方法)。
例如:
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”的情况都是如此)
请参考: