2013-07-31 2 views
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?

Заранее спасибо.

+0

это, вероятно, принадлежит к http://programmers.stackexchange.com – sanbhat

ответ

2

В зависимости от характера вашего приложения, в большинстве случаев это не очень хорошая практика, чтобы иметь набор констант таким образом, но это трудно сказать, не зная контекста вашего приложения. BTW, уверены, что вы никогда (или почти никогда) не измените такие вещи, как «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); 
    } 

} 
+0

вы можете также добавьте файл свойств, но вы можете использовать любой подход в этом ответе, номер 16 и 12 - String –

+0

у него есть int xD not String – nachokk

+0

Ok @nachokk, я обновлю перечисление, чтобы обрабатывать также ints – morgano

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"; 
. 
. 
. 
} 
+0

Спасибо за решение – MaheshVarma

Смежные вопросы