UML表示法:这种关系是什么?

时间:2010-09-22 05:42:01

标签: uml

查看下面的UML图(装饰器模式),Decorator和组件之间的关系名称是什么?是协会吗?

Decorator pattern

6 个答案:

答案 0 :(得分:3)

Component和Decorator之间的两个关系构成了另一种模式 - Composite

  • Decorator是Component的子类型(rel with triangle)
  • 装饰器聚合(包括)许多组件(带菱形的rel)

它允许创建递归树结构。调用聚合装饰器的操作被委托给其包含的元素。因此,在您的图中,Decorator.Operation()的行为是在每个聚合组件上调用Component.Operation()。由于一个或多个本身可能是装饰器,因此对Operation()的调用将通过树结构传播。

答案 1 :(得分:2)

一个是另一个聚合的扩展(那是在Decorator中具有小nob的聚合)。 这意味着Decorator可以包含0个或更多组件。

HTH

马里奥

答案 2 :(得分:1)

这是aggregation。装饰器有很多组件。

答案 3 :(得分:0)

聚合。看待差异的最简单方法是“待”和“有”。 对象Component“有一个装饰器”。对象Decorator“是一个组件”。

答案 4 :(得分:0)

您正在描述聚合。 问题是这个图表应该从您的代码中反转,或者您应该从图表中获取代码。只是图形化UML设计对我来说还不够。

当我使用没有代码映射到UML的工具时,我的建模迟早会变得可怕! 我创建了很好的图表但除了演示文稿没有人真正使用它们。我意识到团队中的每个人都浪费时间。 我已经切换到专业工具,然后我的项目真正被团队使用,而不仅仅是在故事板中使用过一次的图形视图。 让我感到惊讶的是,开发人员也纠正了我的图表,因为在实现阶段,UML中的优点在代码中是不可能的:-) 这就是为什么如果你使用类图,UML作为独立对我没有价值。我使用开源图形工具做错了,但不会再这样做了!!

答案 5 :(得分:-2)

扩展关系