我目前正在编写解决旅行商问题的遗传算法。我在多个地方使用了一些“常量”。但是,这些值需要预先计算,因此,我无法将它们存储到私有静态最终变量中。因此,我决定使用枚举。
public enum Constants {
NODE_COUNT(0),
SEQUENCE_LENGTH(0),
POPULATION_SIZE(0),
MAX_EDGE_WEIGHT(0),
MUTATION_RATE(0);
private int value;
private boolean alreadySet = false;
Constants(int value) {
this.value = value;
}
public void setValue(int value) {
if (!alreadySet) {
this.value = value;
this.alreadySet = true;
} else {
throw new AssertionError("Value is already set.");
}
}
public int get() {
return value;
}
}
我的问题是,你认为这是一个好方法吗?我不确定这是否会降低使用枚举的每个类的凝聚力。提前致谢。