1

我在我的应用程序中引用的常量值很少。我正在创建一个类似于下面代码段的类。

    public class Styles {

public static final String tableStyle = "TableGrid";
public static final String fontFamily = "Calibri";
public static final String headerStyle = "Heading2";
public static final String footerStyle = "Heading3";
public static final String tableHeaderStyle = "Heading1";
public static final String tableDataFontFamily = "Cambria";
public static final int tableHeaderFontSize = 16;
public static final int tableDataFontSize = 12;

   }

我正在分配其中的值,并且我将它们称为Styles.headerStyle. 我的疑问是,这是好方法还是有更好的方法来实现这一目标?像Enum什么?

提前致谢。

4

2 回答 2

2

这取决于您的应用程序的性质,在大多数情况下,以这种方式拥有一组常量并不是一个好习惯,但是如果不知道您的应用程序的上下文就很难分辨。顺便说一句,您确定您永远不会(或几乎永远不会)更改“fontFamily”之类的东西吗?

当然,枚举会更简洁,更实用:

public enum Styles {

    TABLE_STYLE("TableGrid"),
    FONT_FAMILY("Calibri"),
    HEADER_STYLE("Heading2"),
    FOOTER_STYLE("Heading3"),
    TABLE_HEADER_STYLE("Heading1"),
    TABLE_DATA_FONT_FAMILY("Cambria"),
    TABLE_HEADER_FONT_SIZE("16"),
    TABLE_DATA_FONT_SIZE("12");

    private String value;

    private Styles(String value) {
        this.value = value;
    }

    public String getStringValue() {
        return value;
    }

    public int getIntValue() {
        return Integer.valueOf(value);
    }

}
于 2013-07-31T05:55:11.750 回答
2

1) 您可以使用外部文件作为Property File.

2)您可以使用枚举作为@morgano 答案

3)我会将您的班级声明更改为

public final class Styles { // final class can't have childs

private Styles(){} // you cannot instanciate

public static final String tableStyle = "TableGrid";
.
.
.
}
于 2013-07-31T05:59:55.757 回答