我有以下關係:多對多關係可以成爲聚合嗎? [簡單的問題]
路線* ------ * RouteLeg
我想使這是一個聚集,因爲路由是由由多個RouteLegs。
但是,如果我刪除一個路由,它的RouteLegs也不一定會被刪除(儘管大多數情況下它們會),因爲它們可能用於其他路由。
將此關係顯示爲聚合是否合適?
像這樣:
路線* <> ---- * RouteLeg
我有這樣的疑問,由於事實,吉姆·阿洛在其「UML 2和統一過程:實用面向對象分析與設計「書中,沒有看到多對多的關係作爲一個聚合,但它對我來說很有意義...
任何人都有證據表明可能有多對多的聚合? 非常感謝。
這就是我所想的。但是,爲什麼人們認爲多對多永遠不應該是一個聚合......肯定有一個原因...... – 2010-11-01 11:39:29
這個問題一直圍繞着「更強」的意思。你如何定義它?聚合直接關聯的唯一具體屬性是它們不允許循環圖。例如:採用遞歸關係的'Part',允許每個'Part'由許多其他組成。聚集可以防止一部分直接或間接地包含其本身。我玩過的唯一其他用途是表示聚合根(在域驅動設計意義上)。仍然未定;否則我不使用Aggregate,只是直接關聯和組合。 – sfinnie 2010-11-01 13:21:53
您的「零件由零件組成」示例正是Arlow給出的示例。我沒有第一次注意到它。 – 2010-11-01 19:33:19