Jam*_*sev 20 java coding-style interface
接口是一个可以存储我的接受的地方
public static final Foo bar
Run Code Online (Sandbox Code Playgroud)
你是否推断它们是从程序外读取的?你为它组成一个超级班吗?
当情况出现时,你是如何做到的?
Mic*_*rdt 33
我将每个常量放入与它最密切相关的类或接口中(例如,因为它将通过其方法使用).
一个非常诱人但最终非常愚蠢的想法是拥有一个包含应用程序中使用的所有常量的"常量类"(或接口).这看起来很"整洁",但是对于可维护性并不好,因为你想通过它们实现的功能来分组,而不是像常量这样的技术细节(你会把所有接口都放到一个专用的包中吗?所有的抽象类?) .
这个想法也是愚蠢的,因为对那个类/接口的任何改变(因为常量内联)需要重建所有使用任何常量的类 - 即几乎整个应用程序.因此,应用程序越大,您需要更频繁地进行完全重建,并且需要的时间越长.我参与了这样一个项目,这个问题导致每个开发人员每隔一天停顿15分钟......
如果你在谈论一个简单的应用程序,那么Constants类方法很好:
public class Constants {
private Constants() {} // no way to instantiate this class
public static final String MY_VAL = "123";
}
Run Code Online (Sandbox Code Playgroud)
如果您正在构建一个更大的应用程序,您应该使用依赖注入,请查看如何将属性值注入使用注释配置的Spring Bean?