【发布时间】:2013-02-19 03:13:03
【问题描述】:
我正在为我的管道使用责任链设计模式。我发现的一个问题是,随着我添加更多链,配置对象变得越来越大。本质上,我的配置对象正在变成一个巨大的单例。有没有有效的方法来处理这种情况?
详情:
我目前的设置是
handler.next = handler2
handler2.next = handler3
...
我通过将配置对象传递给它来使用链。
handler.HandleRequest(config)
配置对象具有处理程序所需的所有配置信息,因此随着我添加更多链而变得越来越大。
可能的解决方案:
在这篇文章中,最好的答案是使用依赖注入。
Which design patterns can be applied to the configuration settings problem?
但是,我不确定如何在不大幅改变设计的情况下在责任链设计中使用依赖注入。
有人可以帮我解决这个问题吗?谢谢!
【问题讨论】:
-
你的链是处理配置对象(为了做什么?)还是从配置对象中提取配置?
-
链只是从配置对象中提取配置,例如每个链的数据文件所在的位置等。配置对象负责检查用户提供的配置是否有效。跨度>
-
还可以看看装饰器模式。它可能比责任链更容易应用(并且在添加横切关注点时特别有用)。
标签: design-patterns configuration dependency-injection chain-of-responsibility