我有一个软件设置2层,一个核心层和一个客户特定层。核心层定义了客户特定层应该能够扩展的常量。更具体的:Java可扩展常量
public class CoreConstants
{
public static long CORE_CONSTANT_1 = 1;
public static long CORE_CONSTANT_2 = 2;
}
客户特定图层应该能够添加仅用于客户特定图层的常量。点子:
public class CustomerConstants extends CoreConstants
{
public static long CUSTOMER_CONSTANT_1 = 1000; // starting range = 1000
}
有没有更常见的方法来处理?
更多信息:继承的原因是定义客户特定常量的起始范围。在CoreConstants类中,我可以设置客户特定常量的初始值。客户特定的常量可以定义为:
public static long CUSTOMER_CONSTANT_1 = customStartValue + 1;
public static long CUSTOMER_CONSTANT_2 = customStartValue + 2;
感谢关于枚举,可能适用于我的情况。关于使用接口,为什么会比使用类更好? –
如果“类型”仅仅是一个常量容器,那么你永远不应该能够实例化它。你可以通过私有化构造函数来做到这一点,但是使用接口通常会更清晰。除非你确实需要一些功能,比如'valueOf(String)'方法。在这种情况下,您将返回一个类... – ptomli
@ptomli:用于保存常量的接口通常被视为反模式。请参阅http://en.wikipedia.org/wiki/Constant_interface。在这种情况下,不需要公共的静态最终修饰符,因为接口的所有字段都是隐式的public,static和final。 –