gpt4 book ai didi

带或不带箭头的UML聚合

转载 作者:行者123 更新时间:2023-12-04 17:24:00 25 4
gpt4 key购买 nike

我一直认为,UML聚合定义为路径开头的黑色(实心)菱形,而结尾处没有箭头:

|--------|        |--------|
| :MyA |<>------| :MyB |
|--------| |--------|

今天,我遇到了一种类似于 <>----->的符号(在右端有一个明确的箭头)。因此,我在UML 2.4规范中进行了查找,并实际上找到了这两个版本的引用。

我最喜欢的引用:Craig Larman的“UML和模式”仅提到了第一个没有箭头的版本。在UML规范中,我发现了有关 可导航端的通知,但是我不确定这是否相关以及有什么区别?

有人可以更详尽地说明这一点,并举例说明每个版本的用法吗?

最佳答案

借助导航箭头,可以将任何关联端指定为“可导航”。但是,UML的“可导航性”概念没有确切的含义,人们将其与关联端的概念归另一端的类混淆。类的关联端所有权的概念意味着关联端对应于该类的引用属性。仅在去年的新UML版本2.5中对此问题进行了澄清,该版本为关联端所有权引入了新的可视化表示法,如中的“点”。这很可能是您遇到的内容(即)的预期含义,它的真正含义是以下引用属性:

有关更多说明,请参见此tutorial

评论的其他答案:如果您的类模型指定了所有关联结束的所有权,并且您的类图显示了它们,并且没有UML 2.5中的所有权点(也没有可导航性箭头),则根据UML 2.5关联端由关联本身“拥有”。由于我们在MyA端都没有所有权点,因此两端都由复合关联“拥有”。就要编写/生成的代码而言,这意味着复合关联既不能通过MyA或MyB中的引用属性来实现,而必须借助单独的类来实现,例如“MyA-has- MyB”,它具有两个引用属性,可同时引用任何组合链接的集合和组件,如以下类矩形所示:

关于带或不带箭头的UML聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21738757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com