如何定义常量值 - 最佳实践(How to define Constant values - Bes

2019-07-29 06:42发布

我有两种方法来定义常量。 第一个拥有静态最终数据类型变量的一类的一群,另一个用枚举。

这里是拳头类型:

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()

我的问题是:

  • 哪一个是更好的面向对象,为什么?
  • 是否有任何的替代品或更好的方法存在?

提前致谢。

Answer 1:

ENUM是最好这样做,因为约书亚布洛赫在上述有效的Java ,你将不得不使用枚举一样,如果你想打印所有的常量,你可以更多的控制。 用类常量,你不能有类型安全。 阅读以获得更多帮助



Answer 2:

在项目中使用的属性文件,也将是这样做的一个很好的方式。 如何做到这一点在Java中,在此解释后 。

你可以创建基本的东西叫做tiptip.properties在项目的根目录下,然后存储所有您需要的键值对。



文章来源: How to define Constant values - Best Practice