enums - 当一个属性只能取两个值时,我应该在 UML 中使用枚举吗?
问题描述
我们的 UML 图中有一个非常具体的案例,即 MeasurementSystem 属性。它可以是英制或公制,这非常重要。我想知道是否应该将其设为一个名为 MeasurementSystem 的枚举,其中包含英制和公制。另一种选择是使其成为布尔值,但它似乎不合逻辑,因为它不是真正的真/假情况,但我只是想知道它是否还可以。
解决方案
使用枚举具有三个主要优点:
- 它更接近现实,不那么模棱两可:它不是关于真/假,而是公制/英制。
- 替代方案是自我记录
- 如果在稍后阶段您想使用古希腊或罗马或圣经测量系统,则更容易扩展。
使用布尔值 isMetric
更容易实现,但是一旦你有很多if ... else
而不是switch case
另一种可能性是创建一个 MeasurementSystem
具有两个专业MetricSystem
和ImperialSystem
. 然后,您不必预见很多,switch case
但您可以完全受益于多态性。
推荐阅读
- python - 如何获得 Celery 任务的接收、开始和成功时间?
- java - Spring Data JPA中查询关键字Containing,IsContaining,Contains之间的区别
- bash - 如何拦截/评估 shell 命令,在命令上运行逻辑并可能终止命令
- unit-testing - 如何使用 micronaut 中的方法进行依赖注入以进行单元测试
- javascript - 旧 Javascript 中的对象定义
- google-sheets - 在双引号 ("") 内引用另一个工作表中的单元格
- biztalk - 创建位图文件并将其发送给客户端
- javascript - JavaScript 无法更改图像的 src 属性值
- react-testing-library - 用于 redux 中操作的 React 测试库
- javascript - moment - 按时区结束一天