第五元素 2022-1-13 20:23
潘老师,请问这个历史版本的分析模式,是不是应该为 上一版本 和 当前版本,而不是下一版本?
(组织有个版本的自反关联看起来比较奇怪,但这个背后有它的故事,而且这是一个中间结果,此处就不展开说了。——此处为补注,非原有答疑内容。)
UMLChina潘加宇
哪有什么“当前版本”,你把类和对象搞混了。
“当前版本”“自己”可能以为自反关联是一个对象自己搞,其实自反关联也有两个对象,只不过两个对象属于同一集合。
你想想,如果是这样的话,所有的自反关联都应该有一端的多重性严格为“1”,因为“自己”有且只有一个嘛。
类图说的是映射规则
例如,
组织和人员有个雇用的一对多关联,组织1,人员多,意思是:
对于组织集合中某一个组织对象,在人员集合中可能会有多个人员被它雇用
对于人员集合中某一个人员对象,在组织集合中可能会有1个组织雇用它
同理
组织和组织有个上下级的一对多关联,上级1,下级多,意思是:
对于组织集合中某一个组织对象,在组织集合中可能会有多个下级组织
对于组织集合中某一个组织对象,在组织集合中可能会有1个上级组织
写出代码可能是
class 组织
{
组织 上级;
List<组织> 下级;
......
}
当然,像1对多的自反关联,可以只留一个上级,需要找下级时再算出下级。