pax*_*977 71 configuration design-patterns configuration-files application-settings
在大型复杂的软件产品中,管理可配置设置成为一个主要的痛苦.我见过这个问题的两种方法是:
这些方法对我来说都是错的.
是否有可用于简化问题的设计模式?也许会利用依赖注入技术的东西.
Ree*_*sey 43
我更喜欢创建一个用于设置查询,加载和保存的界面.通过使用依赖注入,我可以将其注入到需要它的每个组件中.
这样可以在替换配置策略方面提供灵活性,并为所有工作提供共同基础.我更喜欢这个单一的全局"设置加载器"(你的选项2),特别是因为我可以覆盖单个组件的配置机制,如果我绝对需要这样做的话.
Bre*_*ode 18
我目前正在使用一个系统,其中配置由一个全局单例对象管理,该对象将配置键映射到值.一般来说,我希望它没有这样做,因为它可能导致系统中的并发瓶颈,并且它对于单元测试等很邋..
我认为Reed Copsey有权利(我投票给他),但我肯定会建议阅读Martin Fowler关于依赖注入的伟大文章:
http://martinfowler.com/articles/injection.html
还有一个小小的附录......如果你想做任何模拟对象类型的单元测试,依赖注入肯定是要走的路.
这个怎么样。您可以使用单个方法 configure(configuration) 定义接口 Configurable。配置参数只是一个哈希表,它将配置参数的名称与其值相关联。
根对象可以以他们想要的任何方式创建配置哈希表(例如:从配置文件中读取它)。该哈希表可能包含根对象 iselft 的配置参数,以及其组件、子组件、子子组件(等)之一可能使用的任何参数。
然后根对象在其所有可配置组件上调用 configure(configuration)。