【发布时间】:2010-09-22 05:42:00
【问题描述】:
看下面的UML图(装饰器模式),装饰器和组件的关系叫什么名字?是协会吗?
【问题讨论】:
标签: uml
看下面的UML图(装饰器模式),装饰器和组件的关系叫什么名字?是协会吗?
【问题讨论】:
标签: uml
Component 和 Decorator 之间的两种关系构成了另一种模式——Composite。
它允许创建递归树结构。在聚合装饰器上调用的操作被委托给它包含的元素。因此,在您的图表中,Decorator.Operation() 的行为是在其每个聚合组件上调用 Component.Operation()。由于一个或多个 thpse 本身可能是装饰器,因此对 Operation() 的调用会通过树结构传播。
【讨论】:
一个是另一个聚合的扩展(那是在 Decorator 有小号的那个)。 这意味着一个装饰器可以包含 0 个或多个组件。
第
马里奥
【讨论】:
它是aggregation。装饰器有很多组件。
【讨论】:
聚合。看到差异的最简单方法是“成为”和“拥有”。 一个对象组件“有一个装饰器”。对象装饰器“是一个组件”。
【讨论】:
您正在描述一个聚合。 问题是该图应该与您的代码相反,或者您应该从您的图中获取代码。仅图形 UML 设计对我来说是不够的。
当我使用没有代码映射到 UML 的工具时,我的建模迟早会很糟糕! 我创建了漂亮的图表,但除了演示之外没有人真正使用它们。我意识到这对团队中的每个人来说都是浪费时间。 我已经切换到专业工具,然后我的项目真正被团队使用,而不仅仅是在故事板中使用过的图形视图。 令我惊讶的是,开发人员还纠正了我的图表,因为在实现阶段,UML 中的优点在代码中是不可能的 :-) 这就是为什么如果您使用类图,作为独立的 UML 对我没有任何价值。我使用开源图形工具犯了这个错误,但不会再犯了!
【讨论】:
延长关系
【讨论】: