在 UML Class 图中建模与 Java 枚举的关联

Modelling associations to Java Enums in UML Class diagrams

我对在 UML Class 图中使用 Java 枚举感到困惑。 目前,我正在为一个包含具有某些属性的 Car class 的系统建模。有些也是枚举,就像 FuelKindCarBrand:

数据库中会有很多汽车(Car 是一个 JPA 实体),我问自己哪个是 [= 的最佳关联和基数23=]FuelKind 和 CarBrand.

到目前为止我的想法:

对于如何解决这个问题,您有什么建议和想法吗?

你几乎做对了。定向关联是这种情况的正确关系。

要阐明关联指的是 class 中的特定属性,请使用目标角色。这在连接器的枚举端(不是 class 端)显示为带有属性名称 (fuelKind) 的文本标签。

如果您有两个相同枚举类型的属性,则必须绘制两个单独的关联。

但是,由于您在属性中使用了类型名称,因此实际上根本不需要绘制任何关系。但如果这样做,与目标角色的定向关联在语义上等同于命名属性中的类型。选择哪一个是风格问题,如果有助于澄清事情,你可以两者都做。

至于另一种关系,关联的定向性质意味着关系是单向的。换句话说,按照您完成的方式绘制它并不表示从枚举类型返回 class 的关系。对于枚举类型,通常不应该存在这种关系,就像整数或字符串不存在这种关系一样。

这是不正确的。枚举是一种数据类型,而不是 class。所以你只需将它分配给你在 Car class 中的属性。您可以使用依赖项指示您在 class.

中使用特定枚举