我通过定义ENUM如下什么是使用Java中的ENUMS验证值组合的最佳方法?
public enum RecordStatusEnum {
CREATED("CREATED"),
INSERTED("INSERTED"),
FAILED("FAILED");
private String recordStatusValue;
RecordStatusEnum (String status) {
recordStatusValue= status;
}
public boolean isSuccess() {
return (this.equals(CREATED) || this.equals(INSERTED));
}
}
方法isSuccess()验证从DB中检索到的记录的状态被用来检查所检索的记录的状态(从雇员列状态)
if (!(employee.getStatus().isSuccess())) {
// return error
}
根据新的要求,有一组条件介绍说A,B和C;对于他们来说,员工表'条件'中有一列。
所以我需要检索状态以及条件,看它是否属于一个具有两者结合的集合。
对于如:isSuccess()应该检查是否在以下几点:
CREATED and A
CREATED and B
INSERTED and C
这必须实现,使得它容易让我添加一个新的组合,说“插入B”到列表中很容易。
上述问题的最佳方法是什么?
注意:在实际业务场景还有很多更多的状态,并与许多不同的组合
而且任何方法检查(如isFailed()canBeModified()等),可以建议即使它不使用ENUMS。我提到ENUMS,因为我不想偏离现有的实现
如果我需要有另一个检查说canBeModified(),它允许执行以下操作:“插入B”,“当前和C '?? – user1583803
为每个枚举添加另一个'Set modificationConditions'。显然,您必须更改构造函数以将两个'Set '作为参数。看到我编辑的答案。 –
谢谢。这里的“条件”究竟是什么?它是我们应该定义的属性“状态”和“条件”的类吗?我们不应该分别定义successConditions吗?为什么你将枚举定义为CREATED(A,B)和INSERTED(C)? – user1583803