有没有任何场景我可以说唯一的解决方案是使用责任链模式



我在读COR(责任链模式),我觉得它就像if-else一样简单或系统级的开关情况,这种模式可以很容易地被类似的模式(如工厂模式或复合模式)所取代。

有没有任何场景或例子可以证明只有COR才能解决这个问题??

提前感谢

COR的一个经典示例是在WindowsForms中处理HelpRequested事件。请参阅来源。

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

If elseswitch case在这种情况下对我们没有帮助,因为儿童控制事先不知道谁将是它的父母,也不知道他们中的哪一个可以处理显示帮助的请求。

正如Alexander所说,但在更一般的层面上——每个处理器可以根据运行时已知的信息动态添加、移动或删除的处理管道。

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

最新更新