Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Uml 面向对象设计协会_Uml - Fatal编程技术网

Uml 面向对象设计协会

Uml 面向对象设计协会,uml,Uml,我一直在做这个练习考试,我似乎找不到这个问题的答案。我觉得一对一和多对一都是2。这显然是错误的,但我想不通。如有任何想法或答案,将不胜感激。如果我能找到正确的答案,那么我至少可以试着找出为什么这是正确的 将关系基数及其隐含的可导航性与最佳优化过程相匹配: 多对多 多对一 一对多 一对一 将目标类型的单个属性添加到关系的多个方面 将目标类型的单个属性添加到关系的一侧 将集合属性添加到关系的多个方面 将集合属性添加到关系的一侧 如果你从面向对象的角度来看,这句话很有意义。想象两个类,现在只需检查每个

我一直在做这个练习考试,我似乎找不到这个问题的答案。我觉得一对一和多对一都是2。这显然是错误的,但我想不通。如有任何想法或答案,将不胜感激。如果我能找到正确的答案,那么我至少可以试着找出为什么这是正确的

将关系基数及其隐含的可导航性与最佳优化过程相匹配:

多对多

多对一

一对多

一对一

将目标类型的单个属性添加到关系的多个方面

将目标类型的单个属性添加到关系的一侧

将集合属性添加到关系的多个方面

将集合属性添加到关系的一侧


如果你从面向对象的角度来看,这句话很有意义。想象两个类,现在只需检查每个语句:

将目标类型的单个属性添加到关系的多个方面

这里你有一对多的关系。如果向关系的多个方面的目标添加单个属性,那么所有这些类实例只能引用一个类,因为该属性只能包含一个值。答案是一对多。例如,汽车与其轮胎之间的关系。一辆汽车可以参考许多通常为4+1的轮胎,但每个轮胎只参考它所属的汽车

将目标类型的单个属性添加到关系的一侧

与上面的参数类似,这里每个实例只能引用另一个实例。说明汽车如何参考其转向柱,反之亦然

将集合属性添加到关系的多个方面

集合属性可以包含许多值。在这种情况下,一个类的多个实例可以引用另一个类的多个实例。这种多对多类型的关系可以通过俱乐部与其成员的关系来建模。通常一个俱乐部有很多会员,每个会员都可以参加很多俱乐部

将集合属性添加到关系的一侧

这里有一个多对一关系,一个类的多个实例只能引用目标类的一个实例。一个例子是汽车与其轮胎的反向关系,如我上面给出的

请注意,多对一和一对多是反向关系,您将其称为第一种关系还是后一种关系取决于您使用的语义


最后一个技巧是,如果您正在考虑面向对象设计,那么使用日常生活中的类比并将其抽象出来,有助于理解许多面向对象模型和元模型的复杂性。

一个家长-多个孩子。一个配偶-一个伴侣。许多俱乐部——许多会员。为什么它们都应该是2?考虑到这四个句子,如果你将单词single替换为1,将单词collection替换为many,那么这些句子似乎可以直接解析为四个基数选项。太棒了。我对添加属性的关系的哪一面感到困惑。谢谢你的帮助。我认为一对多和多对一在你的回答中应该颠倒过来。例如,如果您有一类汽车,且适航性针对具有“多”多重性的一类轮胎。我们将向关系的一侧添加集合属性。汽车类将收集轮胎。我相信当作者一对多说适航性是从左到右的时候。该属性将添加到导航源中。