首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设计模式响应链Vs装饰者

设计模式响应链Vs装饰者
EN

Stack Overflow用户
提问于 2010-09-16 03:49:23
回答 2查看 8.5K关注 0票数 17

责任链模式与装饰者模式有何不同?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-16 03:57:52

我通常认为装饰者是对一些东西的“添加”,而作为响应链更像是处理一些东西。

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

可以把装饰器看作是一个分层的单元,在这个单元中,每一层都会进行预处理/后处理。责任链更像是一个链表,通常由一件事来处理。

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

票数 26
EN

Stack Overflow用户

发布于 2016-01-11 19:54:47

场景:

考虑一个服务请求(通常是对您笔记本电脑的管理员访问权限),该请求需要得到您的经理、总监和副总裁的批准。在这种情况下,Decorator pattern的行为就好像在每个级别上都有来自它们的注释,最后你会得到一个输出。因此,经理会说“批准并转发”,简单地说是主管“批准并转发”,最后是副总裁“批准”。您的最终输出将是所有3条评论的组合。

注意:无论您的请求是被批准还是不被批准,链都不会断开。

在责任链中,在每个阶段,个人都有权批准或拒绝。如果在任何级别上请求被拒绝,那么您的请求不会继续到下一级别,而只是终止并返回结果。希望这能有所帮助:)

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3721256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档