我有一個小問題,我想出了閱讀此線程: Why are static variables considered evil?緩存是中途最終
在我的應用程序有一個真正大規模量可以說配置變量。例如。字體,顏色,緩存的圖像,...由於他們中的大多數從來沒有改變,我認爲他們是靜態的。儘管如此,我的應用程序是一個小程序,並且由於客戶端一直在執行小程序,因此某些靜態信息可能會更改,因爲給定的配置可能已更改。因此可以說這種數據很少用來改變,但不被認爲是最終的。
除了作爲信息我處理這樣龐大的數額,我映射他們到自己的枚舉這樣的:
public enum Fonts {
COLOR_CHOOSER, MAP_META_DATA;
private Font localFont;
public Font getValue() {
return localFont;
}
private void setValue(Font newFont) {
localFont = newFont;
}
}
protected static void initFonts() {
Fonts.COLOR_CHOOSER.setValue(new Font("Arial", Font.PLAIN, 15));
Fonts.MAP_META_DATA.setValue(font_race.deriveFont(Font.BOLD, 11));
}
通過使用枚舉這樣的,我是能夠識別我期待值非常容易,而我只能在一個地方維護所有人。
有人可能會說,因爲這是靜態的,我也可以把它們放到對象中,他們反正被使用。不過,我認爲目前的行爲更容易閱讀。
除此之外的initFonts()方法的成爲未來由映射方法,該方法從像JSON或XML外部源獲取目前硬編碼值替換。因此,如果我工作OO,這意味着將任何傳入數據轉發到相應的對象,我認爲這些對象不容易閱讀。
想出我的問題: 你們中的某人如何映射/緩存中途最終參數(我也考慮過使用枚舉作爲鍵值的hashmap)。 E.g的圖片,字體,顏色,像素邊距等是我使用這些枚舉的方式適當否則我會認爲它們是邪惡的,因爲它們是靜態的?如果是 - 那將是一個合適的方式,它易於閱讀和易於維護?!
我認爲我的是一個可能的方式去解決,而是打算看完上面提到的線索後,重新考慮整個設計。
非常感謝您的任何意見。 親切的問候。
沒有任何人對此有何評論?! – user1514195