7

我有两种定义常量的方法。第一个在一个类中保存一堆静态最终 DataType 变量,另一个使用 Enum。

这是拳头类型:

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

这些变量的使用将通过静态调用,例如:TipTipProperties.MAX_WIDTH_AUTO

第二种是:

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

正如 Joshua Bloch 在Effective Java中所说,Enum 是最好的方法,使用 Enum 时,您将拥有更多控制权,就像您想打印所有常量一样,您可以。使用类常量你不能有类型安全。阅读本文以获得进一步帮助

于 2012-05-06T15:04:57.290 回答
1

在您的项目中使用属性文件也是一种很好的方法。这篇文章解释了如何在 Java 中做到这一点。

您基本上可以tiptip.properties在项目的根目录中创建一些名为的东西,然后存储您需要的所有键值对。

于 2012-05-06T15:13:58.317 回答