对 UML 图中的符号感到困惑

问题描述 投票:0回答:2

Subject
指向
Observer
的带有小圆圈的黑色箭头是什么意思?

我尝试在谷歌上搜索它,但找不到所需的解释。任何帮助表示赞赏。非常感谢。

enter image description here

design-patterns uml class-diagram
2个回答
4
投票

您在 GoF 第 294 页上找到的此图看起来像 UML,但不是 UML。这是有充分理由的:本书是在 UML 出版之前编写的。正如同一本书中所解释的那样。 363 到 367,所使用的符号是 James RumbaughOMT 符号的变体。

所以这里是你的问题的所有可能的观点:

  1. 此图中的符号是什么意思(在 OMT 中)?

    OMT中的黑色圆圈表示重数“零或更多”。 OMT 只知道双向关联。 GoF 变体引入了黑色普通箭头来指示单向关联。因此,该图意味着可导航的一对多关联,即同一主题实例可能有多个观察者实例,并且主题保留对其观察者的引用。

  2. 你会如何在 UML 中表达相同的含义?

    在 UML 中,这个方向方面将用一个开放式导航箭头来指示,尽管点符号可以更好地反映 GoF 的意图(参见第 3 点)。圆圈将被箭头附近的

    *
    重数替换。顺便说一句,角色
    observers
    会在与这里相反的一侧。

  3. 这个圆圈在 UML 图中意味着什么

    UML 使用关联末尾的小圆圈,即所谓的“点表示法”,来表明关联的末尾属于对面的类所拥有。正如链接文章中所解释的,点符号可以与导航符号结合使用,但箭头必须是开放式的。


0
投票

该图不符合 UML 规范。白色三角形应该是指向超类的线末端的箭头,而黑色箭头看起来是错误的。末尾的球表示 UML 中的财产所有权,但缺少该财产名称。你在哪里找到这个的?

© www.soinside.com 2019 - 2024. All rights reserved.