【问题标题】:UML - Cardinality and diamond relation diagram explainationUML - 基数和菱形关系图解释
【发布时间】:2013-12-13 16:55:28
【问题描述】:

我有这种关系:

一封电子邮件被发送给多个联系人,因此:

Email ♢---(has)------------- Contacts

鉴于联系人可以包含在许多电子邮件中,并且电子邮件可以包含许多联系人,那么:

Email ♢ (0..*)--------(1..*) Contacts

正确吗?我现在可以阅读包含多个联系人的电子邮件和包含在 0 封或更多电子邮件中的联系人吗?

【问题讨论】:

  • 恕我直言,这似乎是正确的。 (很抱歉没有更多的 cmets 可制作)

标签: java oop uml relationship class-diagram


【解决方案1】:

基数是对的。我会失去钻石,但没必要。你所拥有的是一个直接的多:多二进制关联。聚合并不是一个特别有用的装饰,请参阅here 以获得解释。

hth.

【讨论】:

    【解决方案2】:

    如果使用两边的箭头,则关联意味着两个不同的属性,在两个不同类的两个不同实例中。并且每个属性都针对相反的类。所以,你是对的。

    而“共享聚合”=空钻石,你也是对的。根据 UML 标准,它们没有严格定义,如何使用它们取决于我们。一个联系人中有很多电子邮件?放一颗钻石。一封电子邮件中有很多联系人?再放一颗钻石。只有你应该明确决定,它们对你意味着什么。例如,有一个参考列表。

    【讨论】:

      猜你喜欢
      • 2018-09-10
      • 1970-01-01
      • 2013-04-06
      • 2016-12-25
      • 2013-02-15
      • 2021-05-10
      • 2012-01-14
      • 1970-01-01
      相关资源
      最近更新 更多