理解DoFactory设计模式的UML - 装饰器

noo*_*spt 5 uml design-patterns decorator aggregation

我试图在下面的链接中理解描述装饰器模式的UML图

http://www.dofactory.com/Patterns/PatternDecorator.aspx

我不明白为什么Decorator和Component之间存在"聚合"关系.

我相信它应该是组合,因为没有基本组件,Decorator就不可能存在.

Ada*_*tek 7

组合比聚合更强,它通常意味着对象拥有其组件的所有权.在这种情况下情况并非如此,因为装饰器不拥有装饰对象.此外,您可以删除装饰器,而无需删除装饰对象.

在实践中,聚合和组合之间的界限可能是模糊的,并且通常无论选择哪一个都没有太大区别,特别是如果您将图表视为草图.

  • 谢谢亚当.现在很有道理.刚刚重新审视了wiki上的Composition和aggregation的定义.发现这个前."大学可以看作是一个部门的组合,而部门则有教授的集合.此外,一个教授可以在一个以上的部门工作,但一个部门不能成为一个以上大学的一部分." (2认同)