uml - 聚合与组合

标签 uml entity-relationship

我想知道 HumanDriver License 之间的关系是聚合还是组合?我很清楚 RoomBuilding 关系是一个组合,而 ChairRoom 是一个组合聚合。但是 Driver License 可以在没有 Human 的情况下存在,但如果没有 Human,它的存​​在就毫无意义。我卡住了。

最佳答案

由于驾照不是人/人的一部分,而只是与她/他有关,因此他们之间既没有组合也没有聚合,而只是普通的关联。

Gholamali-Irani 的回答混淆了一个事实,即驾驶执照必须与一个人相关联(即,相应的关联端具有恰好一个多重性)与许多成分的(偶然)特征具有不可分割的部分, 并错误地认为 Association 必须是 Composition。

在许多情况下,我们可能怀疑关联是否是组合,将其建模为普通关联会更安全。

将关联(如 Human-has-DriverLicense)建模为组合的唯一充分理由是组件类型的实例(此处为驾驶执照)是没有自己身份的“弱实体”。但驾照确实有自己的 ID,因此没有必要,也没有任何好处,将它们建模为持有人的组成部分。

关于uml - 聚合与组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48360825/

相关文章:

iphone - 性能 : Core Data relationships get faulted after being assigned

php - 用于在注册客户/访客和公司代理之间发送消息的数据库结构

database - 关系识别的通俗说法

uml - 序列图 (SD) 和系统序列图 (SSD) 之间的区别?

uml - 垂直和水平同步线

c# - 我可以使用 C# 集合来保存具有自引用关系的类实例吗?

iphone - 代码中核心数据简单关系

uml - 了解增量开发模型图

java - 类图的实现

C# - 编写嵌套状态流图