Да, вы должны заботиться по очень прагматичной причине!
Классы, в которых вы хотите использовать свои настройки, абсолютно не должны зависеть от способа хранения этих настроек.
Представьте себе, что в будущем вы хотите поддерживать несколько тем для своего приложения. В итоге вы получите не одну, а множество возможностей для вашего размера панели, например:
AppSettings.Views.ThemeA.Windows.Dashboard.Size;
AppSettings.Views.ThemeB.Windows.Dashboard.Size;
Вашему классу пользовательского интерфейса все еще нужна только одна вещь, значение для его переменной windowSize, ему не нужно знать, какая тема используется в настоящее время.
Это правда, где бы у вас не был интерфейс XML, вы не хотите зависеть от схемы везде в вашем коде, но только в одном центральном месте.
Например, вы можете поместить настройки в Карту для внутреннего использования, например:
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 я не знаю других языков).