7

定数を定義する方法は2つあります。1つ目は、クラス内の静的なfinal DataType変数の束を保持し、もう1つはEnumを使用して保持します。

これが最初のタイプです:

public class TipTipProperties {
    public static final String MAX_WIDTH_AUTO = "auto";
    public static final String POSITION_RIGHT = "right";    
}

そして、これらの変数の使用法は、例として静的呼び出しを介して行われます。TipTipProperties.MAX_WIDTH_AUTO

そして2番目のタイプは次のとおりです。

public enum TipTipProperties {

    MAX_WIDTH_AUTO(MaxWidth.AUTO),  
    POSITION_RIGHT(Position.RIGHT);

    private MaxWidth maxWidth;
    private Position position;  

    private TipTipProperties(MaxWidth maxWidth) {
        this.maxWidth = maxWidth;
    }

    private TipTipProperties(Position position) {       
        this.position = position;
    }

    public MaxWidth getMaxWidth() {
        return maxWidth;
    }   

    public Position getPosition() {
        return position;
    }

    public enum MaxWidth {
        AUTO("auto");

        private String width;

        private MaxWidth(String width) {
            this.width = width;
        }

        public String getWidth() {
            return width;
        }
    }

    public enum Position {
        RIGHT("right"),         

        private String position;

        private Position(String position) {
            this.position = position;
        }

        public String getPosition() {
            return position;
        }       
    }
}

使用例として:TipTipProperties.POSITION_RIGHT.getPosition().getPosition()

私の質問は:

  • どちらが優れたOOPであり、その理由は何ですか?
  • 代替案やより良いアプローチはありますか?

前もって感謝します。

4

2 に答える 2

3

JoshuaBlochがEffectiveJavaで述べたように、これを行うにはEnumが最適です。すべての定数を出力する場合と同様に、Enumを使用してより詳細に制御できます。クラス定数を使用すると、型の安全性を確保できません。さらにヘルプが必要な場合はこちらをお読みください

于 2012-05-06T15:04:57.290 に答える
1

プロジェクトでプロパティ ファイルを使用することも、これを行う良い方法です。Java でそれを行う方法は、この投稿で説明されています。

基本的tiptip.propertiesに、プロジェクトのルート ディレクトリに呼び出されるものを作成し、必要なすべてのキーと値のペアを保存できます。

于 2012-05-06T15:13:58.317 に答える