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

UML表示法:这种关系是什么?,uml,Uml,看看下面的UML图(decorator模式),decorator和组件之间的关系的名称是什么?是协会吗 扩展关系扩展关系它是。Decorator有许多组件。它很简单。Decorator有许多组件。一个是扩展,另一个是聚合(即Decorator中带有小nob的组件)。 这意味着装饰器可以包含0个或多个组件 嗯 Mario一个是扩展,另一个是聚合(在Decorator中有一个小nob)。 这意味着装饰器可以包含0个或多个组件 嗯 Mario组件和装饰器之间的两种关系构成了另一种模式- 装饰器是组件

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


扩展关系

扩展关系

它是。Decorator有许多组件。

它很简单。Decorator有许多组件。

一个是扩展,另一个是聚合(即Decorator中带有小nob的组件)。 这意味着装饰器可以包含0个或多个组件


Mario

一个是扩展,另一个是聚合(在Decorator中有一个小nob)。 这意味着装饰器可以包含0个或多个组件


Mario

组件和装饰器之间的两种关系构成了另一种模式-

  • 装饰器是组件的一个子类型(带三角形的rel)
  • 装饰器聚合(包括)许多组件(与菱形相关)

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

组件和装饰器之间的两种关系构成另一种模式-

  • 装饰器是组件的一个子类型(带三角形的rel)
  • 装饰器聚合(包括)许多组件(与菱形相关)

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

聚合。最容易看出区别的方法是“成为”和“拥有”。
对象组件“具有装饰器”。对象装饰器“是一个组件”。

聚合。最容易看出区别的方法是“成为”和“拥有”。
对象组件“具有装饰器”。对象装饰器“是一个组件”。

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

当我使用没有代码映射到UML的工具时,我的建模迟早会很糟糕!! 我创建了很好的图表,但除了表示,没有人真正使用它们。我意识到这对队里的每个人来说都是浪费时间。 我已经切换到一个专业的工具,然后我的项目真的被团队使用,而不仅仅是在故事板上使用过一次的图形视图。 令我惊讶的是,开发人员还修改了我的图表,因为在实现阶段,UML中好的东西在代码中是不可能的:-)
这就是为什么如果使用类图,作为独立的UML对我来说没有价值。我用开源图形工具犯了这个错误,但不会再犯了

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

当我使用没有代码映射到UML的工具时,我的建模迟早会很糟糕!! 我创建了很好的图表,但除了表示,没有人真正使用它们。我意识到这对队里的每个人来说都是浪费时间。 我已经切换到一个专业的工具,然后我的项目真的被团队使用,而不仅仅是在故事板上使用过一次的图形视图。 令我惊讶的是,开发人员还修改了我的图表,因为在实现阶段,UML中好的东西在代码中是不可能的:-)
这就是为什么如果使用类图,作为独立的UML对我来说没有价值。我用开源图形工具犯了这个错误,但不会再犯了

好吧,扩展关系是用例之间的关系,而不是类之间的关系。@odiseh:你错了。类之间存在扩展关系。好吧,扩展关系是用例之间的关系,而不是类之间的关系。@odiseh:你错了。类之间存在扩展关系。