我有一个小问题,我想出了阅读这个帖子: 为什么静态变量被认为是邪恶的?
在我的应用程序中,我有大量的配置变量。例如字体、颜色、缓存图像……因为它们中的大多数从未改变,所以我认为它们是静态的。尽管如此,我的应用程序是一个小程序,并且由于客户端已经执行了一次小程序,因此其中一些静态信息可能会更改,因为给定的配置可能已更改。因此可以说这种数据很少改变,但不被认为是最终的。
此外,由于我以这种方式处理的信息量很大,我将它们映射到自己的枚举上,如下所示:
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 工作,这意味着将任何传入数据转发到相应的对象,我认为这些对象不容易阅读。
提出我的问题:你们中的某个人将如何映射/缓存中途最终参数(我也考虑过使用枚举作为键值的哈希图)。例如图像、字体、颜色、像素边距等。我使用这些枚举的方式是否合适,或者我认为它们是邪恶的,因为它们是静态的?如果是 - 什么是合适的方式,它易于阅读和易于维护?!
我认为我的解决方案是一种可行的方法,但在阅读了上述线程后将重新考虑整个设计。
非常感谢您的任何建议。亲切的问候。