为了避免魔数(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/

10-11 22:13
查看更多