簡體   English   中英

UML class 圖關聯屬性 {subsets < Association end > } | {工會} | {重新定義}

[英]UML class diagram association properties {subsets < Association end > } | {union} | {redefines}

當談到 UML 中 class 圖之間的關聯時,我不太明白 {subset} 代表什么。 我發現這個 PDF 在第 4 頁討論它: https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.138.5537&rep=rep1&type=pdf 這是您也可以在第 4 頁找到的圖表和文本:

在此處輸入圖像描述

我讀了這篇文章,但我並不是 100% 了解 {subsets < class > } 是關於什么的。 它說“代表 d 的插槽將是代表 b 的插槽的子集。類型 B 的元素可以插入插槽 b,類型 D 的元素可以插入插槽 b 和 d。” 那么,{subset} 是某種多態性嗎? 我認為通過“插槽”,它們的意思就像是 B 類型的方法的參數。因為 D 子集 b 這意味着 D 就像 b 的子類,所以它可以在 arguments 中作為“b”傳遞因為多態。

所以問題是:{subsets < class > } 到底是什么,它代表一個子 class 嗎?

除此之外,我還有其他問題:什么是 {union}、{redefines < class > }、{nonunique} 和 {sequence}。 代表什么?

代碼中的一些示例將使其更易於理解。

所以問題是:{subsets < class > } 到底是什么,它代表一個子 class 嗎?

它不是{subsets < class >}而是{subsets < property name >}

在給定的圖表中D是唯一可見的 class 專門B ,如果它們不是專門B的其他類,則B的所有實例都是D的實例,然后{subset b}等於b

但至少有:

在此處輸入圖像描述

B的所有實例都不是D的必要實例(包括專門化D的類),這就是為什么d只涉及b所關注的B實例的子集。

在您的圖表和我的圖表中,子集並不是很有用,但是例如在重新定義的情況下,例如{subsets a, redefines a} {subsets b, redefines b}


什么是 {union}、{重新定義 < class > }、{nonunique} 和 {sequence}

參考正式/ 2017-12-05 §9.5.4 第 113 和 114 頁:

  • union意味着該屬性是其子集的派生聯合。

  • nonunique :表示多值屬性中可能存在重復項。 這與唯一含義相反,沒有可能的重復。 例如,假設b{nonunique}那么B的某些實例可以在b中出現多次。 如果該屬性是通過std::set在 C++ 中實現的,則它是{unique}

  • sequence表示該屬性表示一個有序包,這是{nonunique, ordered}的快捷方式。 C++ 中的std::vectorstd::list就是這種情況。

  • {redefines < property-name > } (不是{redefines < class >} )表示該屬性重新定義了由<property-name >標識的繼承屬性。 如果在您的圖中{subsets b}{redefines b}替換,那么類C只有插槽(例如 C++ 等中的屬性) d 這不像擁有b私有,因此無法從C訪問,這實際上意味着db的重新定義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM