处理包含一组常量的旧枚举类。枚举类中定义了一个函数来检查枚举中是否存在传递的常量。现在可以将一些常量添加到枚举中。如果是这样,它必须经过单独的发布过程。所以我们想摆脱枚举并从数据库或属性文件中获取数据,这样任何新添加都不需要通过发布。但它有一个问题。引用枚举的模块太多,因此终止枚举会导致太多的文件更改。
初始枚举类
Class enum Planets{EARTH,MARS,SATURN};
private static final Planets[] codes={EARTH,MARS,SATURN};
public static boolean isPlanetPresent(String str){//static Edited 19-09-2013
for(Palnets planet : codes){
if(planet.equals(str)){
return true;
}
return false;
}
有了上面的内容,如果我们需要检查 NEPTUNE 是否是行星的一部分,那么我们需要使用Planets.isPlanetPresent("NEPTUNE")
.
为了尽量减少改动,我决定保留枚举类但作为普通类。静态数组在类内部声明并在运行时加载,该数组从 db 中的表中读取数据。
我想到的静态替代方案:
Class Planets{
private static String[] codes;
public Planets{
Spring IOC to connect to db and get the data and place it into codes array( EARTH,MARS,SATURN)
}
public static boolean isPlanetPresent(String str){
for(String planet : codes){
if(planet.equals(str)){
return true;
}
return false;
}
}
有了上面的实现Planets.isPlanetPresent("NEPTUNE")
就不需要在其他文件中改变了。
我的问题是:
- 我的实现是否正确?
- 有没有更好的替代实现?