什么意味着单向关系箭头

时间:2015-10-27 21:23:13

标签: uml

我不明白链接图片中两个表之间的关系是什么意思。我该如何编码呢?​​

enter image description here

这是

  

virtual public Propriete Proprietes {get;组; }

2 个答案:

答案 0 :(得分:2)

类之间关联结束时的箭头(不是表格)表明此端是可导航的。

这被定义为关联结束时的属性操作。 UML 2.5规范中的定义说:

  

isNavigable():Boolean   查询isNavigable()表示是否可以在属性中导航。

body: not classifier->isEmpty() or association.navigableOwnedEnd->includes(self)

此外,它说关于协会符号:

  

协会末尾的空白箭头表示结束   通航。关联结尾的小x表示结束   不可导航。

关于协会的导航性

  

Navigability意味着在运行时参与链接的实例   (协会的实例)可以从中有效地访问   协会另一端的实例。精确的机制   通过其实现这种有效访问是特定于实现的。   如果结束不可导航,则可以或不可以从其他端访问   是可能的,如果是的话,可能效率不高。

要记住要记住的事情,因为这个惯例仍然经常使用:

  

过去常常使用导航符号来表示   非正式惯例,假定不通航的目的是   由协会拥有,而航行结束则被认为是   由对方的分类器拥有。这个惯例现在   弃用。聚合类型,导航性和最终所有权   单独的概念,每个概念都有自己的明确表示法。协会   类所拥有的最终总是可导航的,而那些拥有的则是   协会可以是可导航的。

所以现在你应该知道这意味着什么。如何编码取决于编程语言,公司标准,架构层,您的创造力等。

答案 1 :(得分:2)

Geert写的是真实的东西,但我认为,你需要更多实用的建议。

单向箭头表示Enquette类有一个字段或方法,属于Propriete类。在99%中,它是该类型的简单领域。当代标准规定在线的另一侧使用一个点。

事实上,箭头上没有名称,通常意味着该字段的名称是propriete,或Propriete,根据语言和贵公司接受的风格。 (它在UML标准中不是必需的,但它被广泛使用)。根据问题的最后一段,似乎贵公司也使用这条规则。

事实上,该行的另一端没有箭头,并不意味着Propriete类中没有具有Enquette类的字段或方法。 (虽然这意味着90个联赛)。这仅仅意味着我们还没有决定是否有这样的领域。或许,我们认为它并不重要。即它是未定义的。已知缺少这种连接必须用十字而不是箭头表示。

所以,在Enquette的某个地方,你有一条线:

Propriete propriete;

Propriete* Propriete; //if you are in C++

甚至可能

Propriete** Propriete;

或由你引用

virtual public Propriete Proprietes { get; set; } // apparently, C#

它可以是静态/类字段或实例字段 - 它未在图中定义。

在Propriete课程中可以存在以下行:

Enquete enquete; // or some of the mentioned variants

你要把它存在的决定留给编码员。

请注意,没有箭头的行意味着两端都有字段(或方法)。如果线条显示其中两条,我们根本不会画箭头。

所以,真的,你在这个问题上有错误。它不是单向关系。它是一个显示关系的单向箭头,可以是单向的。