为了避免魔数(Magic Number),我总是在代码中使用常量。过去,我们曾经在无方法的接口(interface)中定义常量集,该方法现已成为反模式。
我想知道什么是最佳做法?我说的是全局常数。枚举是在Java中存储常量的最佳选择吗?
最佳答案
使用接口(interface)存储常量是某种滥用接口(interface)。
但是,使用Enums并不是每种情况的最佳方法。通常,一个简单的int
或任何其他常量就足够了。定义自己的类实例(“类型安全的枚举”)更加灵活,例如:
public abstract class MyConst {
public static final MyConst FOO = new MyConst("foo") {
public void doSomething() {
...
}
};
public static final MyConst BAR = new MyConst("bar") {
public void doSomething() {
...
}
};
protected abstract void doSomething();
private final String id;
private MyConst(String id) {
this.id = id;
}
public String toString() {
return id;
}
...
}
关于java - 涉及魔术数字的全局常数的最佳实践,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3931329/