После инициализации defaultProps
вы можете сделать его содержимое доступным для других объектов в вашем приложении, например, через общедоступный статический метод доступа, например:
public class Config {
private static Properties defaultProps = new Properties();
static {
try {
FileInputStream in = new FileInputStream("custom.properties");
defaultProps.load(in);
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static String getProperty(String key) {
return defaultProps.getProperty(key);
}
}
Это самый простой подход, однако он создает дополнительную зависимость, которая усложняет юнит-тестирование (если только вы не предоставите метод в Config
для установки объекта фиктивного свойства для юнит-тестирования).
Альтернативой является добавление defaultProps
(или отдельных значений конфигурации из него) в каждый объект, который в этом нуждается. Однако это может означать, что вам нужно добавить дополнительные параметры для большого количества методов, если иерархия вызовов глубока.