0

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

细节:

我目前的设置是

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

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

handler.HandleRequest(config)

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

可能的解决方案:

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

哪些设计模式可以应用于配置设置问题?

但是,我不确定如何在不大幅改变设计的情况下在责任链设计上使用依赖注入。

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

4

1 回答 1

0

我认为你们正在尝试一起做一些并不真正属于一起的事情。

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

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

这是一篇更详细地描述设置对象的博客文章。

于 2013-03-05T12:10:55.903 回答