在大型和复杂的软件产品中,管理可配置设置成为主要难题。我见过的两种解决方法是:
- 让系统中的每个组件从配置文件或注册表设置中加载其自己的配置。
- 有一个设置加载程序类,该类加载所有可配置的系统设置,并让每个组件向设置加载器查询其设置。
这些方法对我来说都是错误的。
有没有可以用来简化问题的设计模式?也许可以利用依赖注入技术。
Answers:
我目前在一个由一个全局单例对象管理配置的系统上,该对象保持配置键到值的映射。总的来说,我希望没有这样做,因为它可能会导致系统中的并发瓶颈,并且对于单元测试来说太草率。
我认为Reed Copsey有权(我对他投了赞成票),但是我绝对会建议阅读Martin Fowler关于依赖注入的出色文章:
http://martinfowler.com/articles/injection.html
也有一点补充...如果您想进行任何模拟对象类型的单元测试,则依赖注入绝对是必经之路。
ll be flexible with adding new things to your config. Sure as all approaches this have it
的利与弊。
这个怎么样。使用单个方法configure(configuration)定义可配置的接口。配置参数只是一个哈希表,它将配置参数的名称与其值相关联。
根对象可以按其希望的任何方式创建配置哈希表(例如:从配置文件读取)。该哈希表可能包含根对象iselft的配置参数,以及其组件,子组件,子子组件(等)之一可能使用的任何参数。
然后,根对象在其所有可配置组件上调用configure(configuration)。