java - 它是装饰器模式吗?

标签 java design-patterns decorator software-design

我读了这篇文章,但我需要关于这篇文章中的雇佣示例的专家意见:

Decorator Pattern by Examples

enter image description here

Can we decorate classes with data members as well?

也请分享您对最后一个问题的反馈。

最佳答案

每当你实现并聚合一个接口(interface),使用聚合对象来提供部分已实现的功能时,你就会有一个装饰器模式。您链接的帖子与该描述相匹配,因此它是一个装饰器模式。

From Head First, Design Patterns :

装饰器模式动态地将附加职责附加到对象上。装饰器为扩展功能提供了子类化的灵活替代方案

注意:这个定义与 GoF 书中的定义完全相同:设计模式:可重用面向对象软件的元素您可以在您发布的链接中找到。

通过您的 EmployeeDecorator 子类,您可以向 Employee 添加服务,作为这个“中间”类 (EmployeeDecorator),这是一种封装委派的方法父类,因此具体子类(例如 TeamMemberTeamLead)不会复制委托(delegate)代码。

关于java - 它是装饰器模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23341663/

相关文章:

Python:使用装饰器 v/s mixins?

java - 标记注释与标记界面

java - JxBrowser 卡住整个应用程序

cocoa - 如何在 Quartz 中用图案填充路径

javascript - JavaScript 数组中需要迭代器吗?

python - 在 python 脚本中,如何忽略 Apache Pig 的独立单元测试的 Python 装饰器

java - 如何在不运行静态方法中的代码的情况下测试静态方法

java - Apache 扭矩项目的入口点

design-patterns - Scala 中策略模式的更好替代方案?

python - 如何在 (*args,**kwargs) 部分插入新变量?