Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我阅读了下一个有趣的讨论:为什么我会在装饰器上使用责任链?.
我的问题是为什么我会在责任链上使用装饰器?
装饰器之所以有用,原因与接受的答案完全相同:
您可以在任何时候打破链条这一事实将责任链模式与装饰者模式区分开来
使用 COR,不能保证请求的执行。请求可能会一直通过链,而不会被链中的任何环节捕获和处理。相反,Decorator 强制请求由链中的所有链接处理。这是因为装饰器将对象包装在内部,并且通常通过在感兴趣的方法中添加更多步骤来增强功能。
我们可以清楚地看到,相同的特征可以看作是模式的优点和缺点。这取决于情况和开发人员来选择最合适的模式来使用。