目前,我正试图为汽车建模一个UML图。我有一个问题,除了内燃机,还有电动汽车。
当您查看图表时,您可以看到Golf具有属性consumes的数据类型consumes,而e具有数据类型EnergyType。
你会如何调整这个图表?

发布于 2019-07-31 09:17:05
继承的含义是不同的。您已经在抽象类中定义了consumes枚举。现在,在继承的属性中,您不覆盖此属性,而只分配固定的值。另外,在这种情况下,使用错误的表示法。它应该是consumes: Energytype = electrical energy (等等)。无论如何,这种类型是多余的,因为您会将它放在类类型本身中。混凝土电动汽车是你想要的那种。因此,枚举将包含可能的具体类类型(如果需要的话)。现在你应该把注意力集中在不同类型的汽车上。唯一常见的事情可能是底盘,它将定义在抽象的汽车。
注:对汽车的这种思维方式是恐龙实际上所做的事情,也是为什么它们有这么多麻烦的原因。电子汽车与经典汽车有很大的不同。基本上,你需要回到座位里的人,为抽象的汽车。
修正案

这可能是一种表达汽车的方式(有很多种方法来展示变体,而且要花上几个星期甚至几个月才能找到适合汽车的东西)。您可以看到,抽象的car (用斜体写)没有属性,只是与角色名称关联。一些是抽象类,另一个是具体类(请注意,这只是作为示例的东西)。抽象类只具有关联,并包含与该事物相同的属性。
现在,如果您正在构建一些具体的汽车配置,那么您将只有具体的类:

MySuperNewCar有一个带有4个轮子和2个皮革座椅的电动驱动器。我重复了这个图表中的抽象类。但这是不需要的(因为你可能已经猜到了)。
所以,这是描述汽车的一种方式。有更多的方法需要长时间的讨论。无论如何,您应该请一位能流利地说UML的顾问(换句话说,他擅长建模)。
发布于 2019-07-31 08:15:12
我建议对不同类型的属性使用不同的名称。您可以使用“energyType”和“燃料类型”来代替“消耗”。
https://stackoverflow.com/questions/57284974
复制相似问题