Java UML类图关系

Java UML类图关系,java,uml,class-diagram,Java,Uml,Class Diagram,对于我将在类图中使用哪些关系,我有些疑问。我知道我可以使用一般关联(使用关联行)或更具体的关联,如聚合或组合。我已经知道聚合和合成的定义,但我的问题是: 何时需要使用一般关联,何时需要使用更具体的关联 有什么规则吗 在绘图时,请使用未指定的关系。当您开始使diag更具体时,在其端点上写下数字,指定箭头端点,命名端点,在端点上放置共享/复合菱形和点 注意-聚合可以是:共享、组合或无。简单地将共享聚合命名为聚合是不好的做法,这与UML标准背道而驰 绘图时,请使用未指定的关系。当您开始使diag更具体

对于我将在类图中使用哪些关系,我有些疑问。我知道我可以使用一般关联(使用关联行)或更具体的关联,如聚合或组合。我已经知道聚合和合成的定义,但我的问题是:

  • 何时需要使用一般关联,何时需要使用更具体的关联
  • 有什么规则吗

  • 在绘图时,请使用未指定的关系。当您开始使diag更具体时,在其端点上写下数字,指定箭头端点,命名端点,在端点上放置共享/复合菱形和点


    注意-聚合可以是:共享、组合或无。简单地将共享聚合命名为聚合是不好的做法,这与UML标准背道而驰

    绘图时,请使用未指定的关系。当您开始使diag更具体时,在其端点上写下数字,指定箭头端点,命名端点,在端点上放置共享/复合菱形和点


    注意-聚合可以是:共享、组合或无。简单地将共享聚合命名为聚合是不好的做法,这与UML标准背道而驰

    如果您唯一关心的是符合UML,那么您可以自由选择使用哪种类型的关联。然而,最佳实践是决定在项目中使用哪种类型的关联,并一致地使用它们

    我的建议是使用一般关联和复合聚合,而不是共享聚合。如果一个类对其关联类的存在负有责任(根据复合的定义),则始终使用复合。如果有一种较弱的聚合,只需绘制一个一般关联即可


    或者,您可以决定只使用一般关联。例如,如果您的受众不习惯UML,并且您不想向他们解释更具体的关联形式,则首选此选项。

    如果您唯一关心的是符合UML,您可以自由选择使用哪种类型的关联。然而,最佳实践是决定在项目中使用哪种类型的关联,并一致地使用它们

    我的建议是使用一般关联和复合聚合,而不是共享聚合。如果一个类对其关联类的存在负有责任(根据复合的定义),则始终使用复合。如果有一种较弱的聚合,只需绘制一个一般关联即可


    或者,您可以决定只使用一般关联。例如,如果您的受众不习惯UML,您不想向他们解释更具体的关联形式,则首选此选项。

    我不是专家,但我想说,一般关联可用于高级类图,而聚合/组合可用于低级详细图。可能重复当然,这不是它的工作原理。两者都在同一个级别上使用。我不是专家,但我要说的是,一般关联可以用于高级类图,而聚合/组合可以用于低级详细图。可能重复@Baderous,这不是它的工作方式。两者都是在同一水平上使用的。哦,是吗?我总是用聚合这个词,而不是共享?在UML标准文档中,哪里写的应该命名为shared?@ThomasKilian。我认为,这是一个严肃的权威?:-)当然,没有关于使用“共享”的词来代替某些东西,正如我所说的,没有设置聚合参数的共享组合值。。。。我想补充一点,这是合乎逻辑的——如果你用“聚合”来代替共享,那么这三个术语切换的参数是什么?“聚合”作为“聚合”状态之一?。。。我想知道,什么是。。。工具第一次使用了这个明显不正确的术语,让很多人感到困惑,因为我知道,它被广泛使用。@ThomasKilian,请参阅UML 2.5规范第110页。@www.admiralit.nl感谢你们两位的澄清!我研究了UML1.5,他们经常使用类似于
    (即,它不是聚合或组合)的术语。没有任何关于
    共享聚合的消息。后来的版本中已经介绍了。哦,是吗?我总是用聚合这个词,而不是共享?在UML标准文档中,哪里写的应该命名为shared?@ThomasKilian。我认为,这是一个严肃的权威?:-)当然,没有关于使用“共享”的词来代替某些东西,正如我所说的,没有设置聚合参数的共享组合值。。。。我想补充一点,这是合乎逻辑的——如果你用“聚合”来代替共享,那么这三个术语切换的参数是什么?“聚合”作为“聚合”状态之一?。。。我想知道,什么是。。。工具第一次使用了这个明显不正确的术语,让很多人感到困惑,因为我知道,它被广泛使用。@ThomasKilian,请参阅UML 2.5规范第110页。@www.admiralit.nl感谢你们两位的澄清!我研究了UML1.5,他们经常使用类似于
    (即,它不是聚合或组合)的术语。没有任何关于
    共享聚合的消息。因此,这已经在后来的版本中引入。