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 に導入されました。1 つはもちろん、よく知られている多重継承の問題です。インターフェイスが使用されるもう 1 つの重要なシナリオは、特定のクラスがインターフェイスで定義されたコントラクトに従う必要があるクラス構造を設計する場合です (したがって、関連するインターフェイスを実装する必要があります)。

あなたの場合、そのような契約やデザインの提案を強制していないように見えるので、これにはインターフェイスを使用しないことをお勧めします。

于 2012-10-24T21:42:27.870 に答える