当类与另一个相关联时,如链接图像中的Flight,其中有一个或一个与之关联的Plane,这是否应该反映在类的属性中?
也就是说,本例中的Flight类不应该在其flightNumber,departureTime等旁边有一个赋值的平面字段......否则,飞行怎么能说“了解”它的相关平面呢?
答案 0 :(得分:1)
没有
在图表中显示关联等同于具有特定类的属性。如果存在关联(具有角色),则此角色 是相应类别的属性。
供参考,请参阅UML 2.5规范9.5.5节中的图9.12(带说明)。
答案 1 :(得分:0)
如果你有一个属性" assignedPlane:Plane'在Flight类中,然后角色被分配到平面'在协会上将是多余的。但仅仅担任角色并被分配到平面'在协会上并不意味着班级飞行意识到它。如果Flight将被实现为Java类或任何其他OO编程语言中的类,则从类图中不清楚Flight类是否对赋值的平面有任何引用(或知道)。
如果您想与您的受众群体进行沟通,那么班级航空公司拥有一个名为“已分配平面”的参考资料。如果是零或一个平面实例,则可以在关联结束时添加一个粗点(或一个小的实心圆)。以下是UML 2.5规范中的一个示例:
在此示例中,' size'是Window的一个属性,尽管它显示为关联。如果你有一个显示Window所有属性的类图,那么' size:Area'将是其中之一。
点符号是一种相对较新的符号,并未广泛使用。相反,许多设计师使用箭头符号,也如图9.12所示。根据UML,这个所谓的导航箭头指定可以从Window有效地访问相关的Area实例,而不管这种情况如何以及为何如此。大多数设计师都认为这意味着Window有一个属性&size; Area',但严格来说,这不是UML规范所说的。
同时使用箭头和点,如图9.12所示,是有效的,但是多余的。