是的,出于非常务实的原因,您应该关心!
您要使用设置的类绝对不需要依赖于这些设置的存储方式。
想象一下,将来您希望为您的应用程序支持多个主题。您的仪表板大小最终将不是一种,而是多种可能性,例如:
AppSettings.Views.ThemeA.Windows.Dashboard.Size;
AppSettings.Views.ThemeB.Windows.Dashboard.Size;
你的 UI 类仍然只需要一件事,它的变量 windowSize 的值,它不需要知道当前使用的是哪个主题。
确实,只要您有一个 XML 接口,您就不想在代码中的任何地方都依赖于模式,而只依赖于一个中心位置。
例如,您可以将设置放在内部使用的 Map 中,如下所示:
public class SettingsReader {
public static final String VIEW_WINDOW_DASHBOARD_SIZE = "Views.Windows.Dashboard.Size";
private Map settings = new Hashmap();
public SettingsReader(AppSettings appSettings) {
settings.put(VIEW_WINDOW_DASHBOARD_SIZE, appSettings.Views.Windows.Dashboard.Size);
}
public String getSettingValue(String key) {
return settings.get(key);
}
}
然后你只有一个地方可以重构来支持一个主题,就像这样:
public class SettingsReader {
public static final String VIEW_WINDOW_DASHBOARD_SIZE = "Views.Windows.Dashboard.Size";
private Map settings = new Hashmap();
public SettingsReader(AppSettings appSettings, String theme) {
settings.put(VIEW_WINDOW_DASHBOARD_SIZE, appSettings.Views + theme + Windows.Dashboard.Size);
}
public String getSettingValue(String key) {
return settings.get(key);
}
}
最后一点,只是因为我的伪代码和 java 代码的混合可能会让人感到困惑,尤其是appSettings.Views + theme + Windows.Dashboard.Size
: 当使用 XML 接口时,xPath 通常非常有用,即使在使用对象时也非常有用,这要归功于漂亮的库JXPath(对于 java,我不知道其他语言)。