Nix*_*Nix 16

我通常认为Decorator是"添加"某些东西,因为责任链更像是处理某些事情.

在比较两种模式(除了苹果和橙子)之外,最大的区别是责任链可以在任何时候杀死链条.

将装饰器视为一个分层单元,其中每个层始终进行前/后处理.责任链更像是一个链表,通常有一件事处理.

责任链模式允许多个事物处理事件,但它也使他们有机会在任何时候终止链.


小智 9

场景:

考虑服务请求(通常是管理员访问您的笔记本电脑),需要经理,主管和副总裁批准.在这种情况下,Decorator模式就好像在每个级别只会有来自每个级别的注释,最后你会得到一个输出.因此,经理会说'已批准并转发',Simlarly董事'Ok Approved并转发',最后VP'批准'.而你的最终输出将是所有3条评论的组合.

注意:无论您的请求被批准还是已拒登,链条都不会中断.

在责任链中,在每个阶段,个人都有权批准或拒绝.如果在任何级别请求被拒绝,那么您的请求不会进入下一级别,而只是终止结果.希望这可以帮助 :)