我读了这篇文章,但我需要关于这篇文章中的雇佣示例的专家意见:
Can we decorate classes with data members as well?
也请分享您对最后一个问题的反馈。
最佳答案
每当你实现并聚合一个接口(interface),使用聚合对象来提供部分已实现的功能时,你就会有一个装饰器模式。您链接的帖子与该描述相匹配,因此它是一个装饰器模式。
From Head First, Design Patterns :
装饰器模式动态地将附加职责附加到对象上。装饰器为扩展功能提供了子类化的灵活替代方案
注意:这个定义与 GoF 书中的定义完全相同:设计模式:可重用面向对象软件的元素您可以在您发布的链接中找到。
通过您的 EmployeeDecorator
子类,您可以向 Employee
添加服务,作为这个“中间”类 (EmployeeDecorator
),这是一种封装委派的方法父类,因此具体子类(例如 TeamMember
和 TeamLead
)不会复制委托(delegate)代码。
关于java - 它是装饰器模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23341663/