我正在为我的管道使用责任链设计模式。我发现的一个问题是随着我添加更多链,配置对象变得越来越大。从本质上讲,我的配置对象正在成为一个庞大的单身人士。有没有一种有效的方法来处理这种情况?
详细说明:
我目前的设置是
handler.next = handler2
handler2.next = handler3
...
我通过将配置对象传递给它来使用链。
handler.HandleRequest(config)
配置对象具有处理程序所需的所有配置信息,因此随着我添加更多链而变得越来越大。
可能的解决方案:
在这篇文章中,最好的答案是使用依赖注入。
Which design patterns can be applied to the configuration settings problem?
但是,我不确定如何在责任设计链上使用依赖注入而不会显着改变设计。
有人可以帮我解决这个问题吗?谢谢!
答案 0 :(得分:0)
我认为你们正在努力做出并非真正属于一体的事情。
如果您需要提取应用程序不同部分的设置/配置值,为什么要尝试在一个地方读取它们?
我更喜欢小型"设置对象"对于需要某种设置的每个组件。我通常从包含所有硬编码默认值的对象开始,并在必要时从该基本设置派生。派生对象可以从任意源读取(大多数时候是app.config文件,但我也使用了数据库和Web服务)。