创建 class 图的最佳方法

The best way to create the class diagram

问题如下:一场比赛有参赛者,比赛的起跑线按分配给参赛者的号码排序。每个参与者可以使用一辆车,需要登记车辆的信息。所以信息是: 比赛:姓名,地点,时间,... 汽车:比赛开始编号,制造年份,型号,... 自行车:比赛开始编号,型号,车轮尺寸,... 马车:比赛开始数量,马匹数量,...

创建 class 图表并获取按比赛开始编号订购的车辆的起跑线的最佳​​方法是什么?

案例A:raceStartNumber分布在不同的Entities中。有必要通过 raceStartNumber 进行映射并对获得的元素进行排序。

情况B:所有的车辆都排在起跑线上,但是车辆class总是有两个关联,比如null。

那么,你觉得哪种情况更好呢?还有其他方法吗?

从来没有最好的解决方案。你总是要权衡取舍,只是有些可能不那么重要。

你的第二个例子是错误的,因为你使用复合聚合而不是泛化。您需要一个空心三角形而不是菱形并省略多重性。

关于您应该研究的选项Composition over inheritance

如@Ister 所述,您的第一种方法也有一个重大缺陷。这是raceStartNumber是每辆车的个体属性。没有什么可以限制它们的独特性。

通常您不会对这些 id 属性建模,除非您有某些要求。对象的 id 是隐含的(在编程语言中通常是实例的内存地址)。

我不会详细介绍,因为该网站不适合评论。