答案 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
你要把它存在的决定留给编码员。
请注意,没有箭头的行意味着两端都有字段(或方法)。如果线条显示其中两条,我们根本不会画箭头。
所以,真的,你在这个问题上有错误。它不是单向关系。它是一个显示关系的单向箭头,可以是单向的。