我有一个工厂类来检索我的应用程序的配置:
public class ConfigurationFactory {
private static ConfigurationFactory configurationFactory = new ConfigurationFactory();
private Configuration configuration = null;
public static ConfigurationFactory getConfigurationFactory() {
return configurationFactory;
}
还有一些 getConfiguration 方法,具体取决于我从哪里获取配置(文件、数据库、默认值等...):
public Configuration getConfiguration(String path){...}
public Configuration getConfiguration(String database){...}
我的问题是,当我对每种方法进行单元测试时,我必须重新启动单例以便从不同的源加载,所以我唯一想到的就是添加这个:
public void resetConfiguration() {
this.configuration = null;
}
而且我觉得我会因为这样做而在开发人员的地狱中燃烧:)
我的问题:有没有其他方法可以在不添加此方法的情况下做到这一点?
注意:我已经看到了,我不能使用像 Spring 或 Guice 这样的任何 DI 框架,管理层认为添加一个框架会使项目变得重量级,因为这个程序旨在作为服务器上的守护进程运行。