有人能简单地解释一下责任链模式吗?我觉得这篇维基文章有点令人困惑。
发布于 2012-02-08 22:15:02
一个非常好的例子是java servlet filters -在HTTP请求到达其目标之前执行的代码片段。
因此,使用servlet筛选器,您可以
发布于 2012-02-08 22:30:05
我将借助一个类比来尝试:
将命令作为曲棍球进行处理,将责任处理程序类链视为具有单孔的网。现在想象这样一个半径不同的网彼此堆叠在一起(上面有最小半径孔的网)。
现在你把冰球从上面扔下来。如果冰球的半径大于第一个洞,它就会卡在里面,不会再往下掉。这意味着该命令已由第一个处理程序处理。
但是如果冰球比这个洞小,它就会穿过它去下一个洞,以此类推,直到它被抓住或掉进所有的网中。冰球经过的所有网络(责任处理程序类)都已经处理了冰球(处理了命令)。
发布于 2012-02-08 22:21:07
使用此模式,您可以创建一个检查请求的对象链。依次检查请求并处理它,或者将它传递给链中的下一个对象。
好处
的顺序或成员来动态添加或移除责任
缺点
未保证请求的
潜在用例
发自:

下面是关于此模式的一个有趣的InformIT article,并带有示例代码。
https://stackoverflow.com/questions/9194922
复制相似问题