我正在开发一个ejb项目,我需要定义一组可以在整个项目中使用的常量,所以我创建了一个包含常量集的接口我的问题是有更好的在Web项目中定义常量的方法?
这是我常量界面的例子:
public interface ejbConstant {
final String CONST23= "AB23";
final String CONST24= "AB24";
// ..........
}
感谢您的建议
答案 0 :(得分:2)
Sonar非常好explanation of this with examples
有效Java"
的作者Joshua Bloch表示常量接口模式是接口的不良使用。
一个类在内部使用一些常量是一个实现 详情。实现常量接口会导致此实现 泄漏到类导出的API中的细节。这无关紧要 对类实现常量的类的用户 接口。事实上,它甚至可能使他们感到困惑。更糟糕的是,它代表了一个 承诺:如果在将来的版本中修改了类,那么它就没有了 更长时间需要使用常量,它仍然必须实现 接口以确保二进制兼容性。如果是非最终类 实现一个常量接口,它的所有子类都有它们 命名空间被界面中的常量污染。