更好的 UML class 图结构来表示个体的婚姻
Better UML class diagram structure to represent marriage of individuals
目前我正在处理一个更大项目的一部分,但我不太确定如何处理系统的这一部分。
一个人可以多次结婚,每次结婚都需要有主婚人、伴侣1、伴侣2和见证人。个人可以在多重婚姻中扮演这些角色。
我想知道是否有一种方法可以用较少的关联来表示所有必要的个体,因为在查看整个系统时图表很快就会变得一团糟。
Updated class diagram
将partner1和partner2替换为partner,重数为2,当然同样适用于伙伴见证
individualId 和 marriageId 是错误的,因为写下划线表示它们是 static。可能它们是主键,但它们是实例成员,而不是 class 成员。也可以命名为id,没用有前缀
什么是 statusPartner? class-协会可以支持吗?
个人->婚姻的分离关系是错误的,因为这样的婚姻与个人参与的婚姻不一样,无论其角色如何,这都不是您想要的。所以删除它并使用双向关系
根据您的评论
statusPartner is simply status of the partner before marriage (divorced, widow and so on)
强制通过 class 协会管理它:
- 只有 partner 你无法知道谁是 statusPartner1 和 statusPartner2,当然如果是 class-association.
,你就没有这个问题
- 您也可以在个人中移动该属性,但在这种情况下,它不仅存在于合作伙伴,而且拥有它没有多大意义
例如:
请注意,也可以使用 class-association 仅对主祭和证人使用一种关系:
有一个限制条件说有两个人的角色是 witness,一个人的角色是 officiant
角色也可以是枚举或被isWitness
替换为布尔值等
也可以只使用一个class-association :
第一个约束说伴侣的角色是伴侣,第二个约束说在婚姻中有两个人角色见证人,其中一位担任官员,两位担任合伙人
- 完美!但是注意一开始有partner1Witness和partner2Witness,也就是每个partner都有自己的witness。
- 第一个约束说合作伙伴的角色是伴侣,第二个约束说在婚姻中有两个人扮演证人角色,一个人扮演主祭角色,两个人扮演伴侣角色
可能是图表
图中可能的方案
目前我正在处理一个更大项目的一部分,但我不太确定如何处理系统的这一部分。
一个人可以多次结婚,每次结婚都需要有主婚人、伴侣1、伴侣2和见证人。个人可以在多重婚姻中扮演这些角色。
我想知道是否有一种方法可以用较少的关联来表示所有必要的个体,因为在查看整个系统时图表很快就会变得一团糟。
Updated class diagram
将partner1和partner2替换为partner,重数为2,当然同样适用于伙伴见证
individualId 和 marriageId 是错误的,因为写下划线表示它们是 static。可能它们是主键,但它们是实例成员,而不是 class 成员。也可以命名为id,没用有前缀
什么是 statusPartner? class-协会可以支持吗?
个人->婚姻的分离关系是错误的,因为这样的婚姻与个人参与的婚姻不一样,无论其角色如何,这都不是您想要的。所以删除它并使用双向关系
根据您的评论
statusPartner is simply status of the partner before marriage (divorced, widow and so on)
强制通过 class 协会管理它:
- 只有 partner 你无法知道谁是 statusPartner1 和 statusPartner2,当然如果是 class-association. ,你就没有这个问题
- 您也可以在个人中移动该属性,但在这种情况下,它不仅存在于合作伙伴,而且拥有它没有多大意义
例如:
请注意,也可以使用 class-association 仅对主祭和证人使用一种关系:
有一个限制条件说有两个人的角色是 witness,一个人的角色是 officiant
角色也可以是枚举或被isWitness
替换为布尔值等
也可以只使用一个class-association :
第一个约束说伴侣的角色是伴侣,第二个约束说在婚姻中有两个人角色见证人,其中一位担任官员,两位担任合伙人
- 完美!但是注意一开始有partner1Witness和partner2Witness,也就是每个partner都有自己的witness。
- 第一个约束说合作伙伴的角色是伴侣,第二个约束说在婚姻中有两个人扮演证人角色,一个人扮演主祭角色,两个人扮演伴侣角色 可能是图表
图中可能的方案