责任链与大配置

时间:2013-03-04 21:37:29

标签: design-patterns configuration dependency-injection chain-of-responsibility

我正在为我的管道使用责任链设计模式。我发现的一个问题是随着我添加更多链,配置对象变得越来越大。从本质上讲,我的配置对象正在成为一个庞大的单身人士。有没有一种有效的方法来处理这种情况?

详细说明:

我目前的设置是

handler.next = handler2
handler2.next = handler3
...

我通过将配置对象传递给它来使用链。

handler.HandleRequest(config)

配置对象具有处理程序所需的所有配置信息,因此随着我添加更多链而变得越来越大。

可能的解决方案:

在这篇文章中,最好的答案是使用依赖注入。

Which design patterns can be applied to the configuration settings problem?

但是,我不确定如何在责任设计链上使用依赖注入而不会显着改变设计。

有人可以帮我解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我认为你们正在努力做出并非真正属于一体的事情。

如果您需要提取应用程序不同部分的设置/配置值,为什么要尝试在一个地方读取它们?

我更喜欢小型"设置对象"对于需要某种设置的每个组件。我通常从包含所有硬编码默认值的对象开始,并在必要时从该基本设置派生。派生对象可以从任意源读取(大多数时候是app.config文件,但我也使用了数据库和Web服务)。

这是blog post that describes settings objects更详细。