在Java中定义常量的位置的问题在论坛中出现了很多次,但我很难找到一个我觉得舒服的解决方案.
为简单起见,假设我有两个类:WriteMyData
和ReadMyData
.None是另一个的子类.两个类共享两个对其操作至关重要的常量:String DELIMITER
和int LENGTH
.将来我可能想要更改这些常量的值,以便在适当的地方定义它们.
这种共识似乎常常有利于这种enum
类型.但是,在我的情况下没有什么可以枚举,所以我最终只有一个项目enum
,我打电话DEFAULT
:
public enum DataSettings { DEFAULT(",", 32); private final String delimiter; private final int length; DataSettings(String delmiter, int length) { this.delimiter = delimiter; this.length = length; } public String getDelimiter() { return delimiter; } public int getLength() { return length; } }
因此,在我的两个类中,我通过DataSettings.DEFAULT.getDelimiter()
和访问常量DataSettings.DEFAULT.getLength()
.
这是非常好的OO风格吗?是否使用enum
过度杀伤?如果我不使用enum
,我该怎么做?为常量创建一个接口似乎不受欢迎,而且我的类似乎没有自然的超类来源.初学者错误是只有一个默认项目enum
吗?