是否有任何情况我可以说只有解决方案是使用责任链模式?

时间:2016-05-18 06:59:09

标签: c# design-patterns chain-of-responsibility

我正在阅读COR(责任链模式),我觉得它的工作原理就像if else一样简单 要么 在系统级别切换外壳,这种模式可以很容易地被类似工厂或复合模式的模式替换。

是否有任何情况或示例证明只有COR才能解决这个问题?

提前致谢

2 个答案:

答案 0 :(得分:2)

经典示例COR是在WindowsForms中处理HelpRequested事件。请参阅source

如果我们在特定控件上有事件处理程序,则处理它。否则,处理事件的请求将传递给父控件。

如果其他切换案例在这种情况下无法帮助我们,因为子控件事先并不知道谁将是父母并且不知道哪个是他们可以处理显示帮助的请求。

答案 1 :(得分:0)

就像亚历山大所说的那样,但是在更一般的层面上 - 每个处理流程都可以根据运行时已知的信息动态添加,移动或删除处理器。

模式通常包含对手头问题的非常精确的描述(大多数人倾向于忽视,而是依赖于直觉感觉模式足够接近他们的背景)。大多数情况下,解决方案可以直接从问题公式本身推导出来。这将解决方案限制为几乎可行的形状,尽管模式有多种可能的实现。