首页 > 解决方案 > 当一个属性只能取两个值时,我应该在 UML 中使用枚举吗?

问题描述

我们的 UML 图中有一个非常具体的案例,即 MeasurementSystem 属性。它可以是英制或公制,这非常重要。我想知道是否应该将其设为一个名为 MeasurementSystem 的枚举,其中包含英制和公制。另一种选择是使其成为布尔值,但它似乎不合逻辑,因为它不是真正的真/假情况,但我只是想知道它是否还可以。

标签: enumsbooleanumlenumerationclass-diagram

解决方案


使用枚举具有三个主要优点:

  • 它更接近现实,不那么模棱两可:它不是关于真/假,而是公制/英制。
  • 替代方案是自我记录
  • 如果在稍后阶段您想使用古希腊或罗马或圣经测量系统,则更容易扩展。

使用布尔值 isMetric更容易实现,但是一旦你有很多if ... else而不是switch case

另一种可能性是创建一个 MeasurementSystem具有两个专业MetricSystemImperialSystem. 然后,您不必预见很多,switch case但您可以完全受益于多态性。


推荐阅读