【问题标题】:Direction of the association arrow in UML class diagramsUML 类图中关联箭头的方向
【发布时间】:2010-12-26 18:09:36
【问题描述】:

在这个展示如何绘制类图的网页上,为什么关联的箭头是从订单指向客户,而不是从客户指向订单?

UML Tutorial - Class Diagrams

【问题讨论】:

    标签: class uml diagram


    【解决方案1】:

    这是因为订单“有”对客户的引用。

    在数据库中,这将是存储客户 ID 的订单表中的外键。

    在代码中,您可以将关联客户对象的引用存储在订单对象中。所以订单指向的是客户,反之亦然。

    【讨论】:

    • 为什么我们不应该决定customer 有很多orders 并为客户添加订单的收集参考?
    • 这应该是其他人从未解释过什么是可导航性的正确答案
    【解决方案2】:

    可能是因为订单与客户相关联?这类事情可以被视为以任何一种方式工作,或者有时两者兼而有之。

    【讨论】:

    • 我知道它们是相互关联的。问题不在于为什么会有箭头,而在于箭头的方向。
    • 它们之间没有关联——一个订单与一个客户关联。
    • 所以从逻辑上它们是相互关联的,你错了
    【解决方案3】:

    箭头描述了您可以导航的方式。因此,在此图中,您可以从订单转到客户。另一方面:没有箭头意味着不是“不可导航”,而是“没有评论”。没有明确的正确方法。

    【讨论】:

      【解决方案4】:

      这是一个依赖,是一种特殊的弱关联类型。这意味着要存在订单,必须在某个时间点存在客户。在“订单”的生命周期中的某个时刻可能没有强制执行此要求。

      【讨论】:

      • 这不是依赖。依赖不是一种特殊的关联,它是一种特殊的Relationship(就像关联是另一种Relationship)
      【解决方案5】:

      关联端在 UML 中具有布尔导航属性。在这种情况下,向客户订购方向的可导航性设置为真,而向客户订购方向的导航设置为假。

      有了这个,模型的设计者表达了订单,现在谁是与订单相关联的客户,但客户不能直接访问他们的订单。

      如果我们看一下这个模型的 Java 代码,导航性就更容易理解了。对于此示例,此可导航性意味着 Order 具有 Customer 类型的属性,但 Customer 没有用于存储他/她的订单的集合属性

      【讨论】:

      • 关联并不总是对应于 UML 属性,并且绝对不对应于 Java 类的属性(Java 中没有这样的东西,所以在 Java 上下文中使用“属性”可能意味着字段或属性或 bean属性)。
      【解决方案6】:

      这可能会有所帮助:

      UML 类图:指南http://msdn.microsoft.com/en-us/library/dd409416%28VS.100%29.aspx

      关联的属性

      可导航:如果仅对一个角色为 true,则会在可导航方向上显示一个箭头。这 关联可以在这个方向上阅读。您可以使用它来指示链接的可导航性和 软件中的数据库关系。

      UML 类图中的关联属性http://msdn.microsoft.com/en-us/library/dd323862%28VS.100%29.aspx

      如果一个角色可导航而另一个角色不可导航,则在导航中的关联上会出现一个箭头 (7) 方向。

      【讨论】:

        【解决方案7】:

        箭头描述可导航性。

        • 可导航结束由关联末尾的空心箭头指示
        • 不可导航的结束在关联的末尾用一个小 x 表示
        • 关联末尾没有修饰意味着未指定的可导航性

        取自: http://www.uml-diagrams.org/association.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-08-24
          • 1970-01-01
          • 2018-09-10
          • 2016-01-30
          • 2011-12-20
          • 2018-10-06
          • 2013-09-04
          • 1970-01-01
          相关资源
          最近更新 更多