为什么我会使用装饰师而不是责任链?

时间:2012-05-26 20:27:47

标签: oop design-patterns

我阅读了下一个有趣的讨论:Why would I ever use a Chain of Responsibility over a Decorator?

我的问题是为什么我会使用装饰师而不是责任链?。

1 个答案:

答案 0 :(得分:0)

装饰器的用法与接受的答案完全相同:

  

你可以在任何一点打破链条的事实区分了   装饰模式中的责任链模式

使用COR,无法保证执行请求。请求可能会一直通过链,而不会被链中的任何链接捕获和处理。相反, 装饰器强制请求由链中的所有链接处理。这是因为Decorator将对象包装在内部,并且通常通过在感兴趣的方法中添加更多步骤来增强功能。

我们可以清楚地看到,相同的特征可以被视为模式的优点和缺点。这取决于具体情况和开发人员选择最合适的模式。