【软件质量】修正瑞士军刀枚举类

有这样一个枚举类,名称为瑞士军刀:

public enum SwissArmyEnum {
    CREATE,
    READ,
    UPDATE,
    DELETE,
    FRISTNAME,
    LASTNAME,
    DATEOFBIRTH,
    STATUS_OK,
    STATUS_ERROR,
    STATUS_FILE_NOT_FOUND,
    SMALL,
    MEDIUM,
    LARGE
}

这个枚举类看起来总是觉得有些别扭,对吧?那它到底为什么不好呢?

其实是违背了面向对象设计SOLID原则中的S,即单一职责原则。
单一职责原则指出,一个类应该只有一个职责,并且有且仅有一个或一类改变的原因。

此枚举类包含很多不同领域的枚举值,应该被分解为若干个不同的枚举类:

public enum Crud {
    CREATE,
    READ,
    UPDATE,
    DELETE
}
public enum PersonAttributes {
    FRISTNAME,
    LASTNAME,
    DATEOFBIRTH
}
public enum Status {
    STATUS_OK,
    STATUS_ERROR,
    STATUS_FILE_NOT_FOUND
}
public enum Sizes {
    SMALL,
    MEDIUM,
    LARGE
}
上一篇:for 循环在C++11中的新用法


下一篇:2020.1.25 Java枚举详解