Skip to content

2025-4

目录


2

Booleans Are a Trap 布尔值是一个陷阱

假设一个门有开关和上锁 2 对属性,你可能构建下面这个一个类

js
class Door {
  isLocked: Boolean;
  isOpen: Boolean;
}

门的实际情况只有 3 个,即 门关和锁门关但不锁门开。但是设置 2 个属性会导致一个意外的状态即门开并且锁,很显然我们不需要这个状态,因此我们需要通过逻辑代码来避免这种以外。

当只有 2 对属性的时候可能还可以通过逻辑代码来避免这种意外的状态,但是随着属性的增加,状态数量会成指数上升,你需要写的逻辑代码也会越来越复杂

作者建议使用枚举类型来避免这种意外的状态

js
enum DoorState {
    LOCKED,
    CLOSED,
    OPEN,
}
————————————————
版权声明:本文为 田园幻想乡 的原创文章,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接: http://truraly.fun/专题/每日博客阅读/2025-4.html


发布时间:

最后更新时间:

Copyright © 2022 田园幻想乡 浙ICP备2021038778号-1