0

选项1:

public class WidgetStatics {
    public static final String FIZZ = "fizz";
    public static final String BUZZ = "buzz";
}

进而:

import com.me.myorg.myapp.WidgetStatics

public class Thing1 {
    public void doSomething() {
        String x = getValueFromUser();
        if(x.equals(WidgetStatics.FIZZ))
            // ...
    }
}

选项#2:

public interface WidgetStatics {
    public static final String FIZZ = "fizz";
    public static final String BUZZ = "buzz";
    // ...
}

进而:

public class Thing2 implements WidgetStatics {
    public void doSomething() {
        String x = getValueFromUser();
        if(x.equals(FIZZ))
            // ...
    }
}

我的问题:

  • 一种选择是否比另一种更高效?哪个会导致更多的努力ClassLoader:导入或实施?
  • 是否存在一种方法比另一种方法更可取/更清洁的特定用例?
4

1 回答 1

1

解决特定问题的方法总是不止一种。

Java 中引入了接口来解决某些设计问题。一个当然是流行的多重继承问题。使用接口的另一个重要场景是当您想要设计一个类结构时,其中某些类必须遵守接口中定义的协定(因此它们需要实现相关的接口)。

由于在您的情况下,您似乎没有执行任何此类合同或设计建议,因此我建议您不要为此使用接口。

于 2012-10-24T21:42:27.870 回答