有这样一个枚举类,名称为瑞士军刀:
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
}