2010-09-22 51 views

回答

-2

extends关系

+0

AFAIK,扩展关系是在用例之间不是类。 – odiseh 2010-09-22 05:49:03

+0

@odiseh:你错了。类之间有扩展的关系。 – 2010-09-22 05:53:05

+0

+1 Lie Ryan - 扩展在类之间有效。 – sfinnie 2010-09-22 10:21:23

2

一个是另一个聚合的扩展(这是一个在装饰者小诺布)。 表示装饰器可以包含0个或更多个组件。

HTH

马里奥

+0

+1我错过了右侧的聚合箭头。 – 2010-09-22 05:56:41

3

组件和装饰之间的两种关系构成另一个图案 - Composite

  • 装饰是组件的一个子类型(相对与三角形)
  • 装饰聚集体(包括)的许多组件(相对与金刚石)

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

+0

很好斑点! – 2010-09-22 09:37:19

0

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

0

您正在描述一个聚合。 问题是这个图应该从你的代码中反转,否则你应该从你的图中得到一个代码。只是图形化的UML设计对我来说还不够。

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