以下のようにENUMを定義することにより、DBから取得したレコードのステータスを検証しています
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()は、取得されたレコードのステータス(従業員からの列ステータス)をチェックするために使用されています
if (!(employee.getStatus().isSuccess())) {
// return error
}
新しい要件に従って、A、B、Cなどの一連の条件が導入されています。それらの場合、Employeeテーブルの「条件」に列があります。
したがって、ステータスと条件を取得して、両方が組み合わされたセットに属しているかどうかを確認する必要があります。
たとえば、:isSuccess()は、次のことを確認する必要があります。
CREATED and A
CREATED and B
INSERTED and C
これは、「INSERTEDandB」などの新しい組み合わせをリストに簡単に追加できるようにする必要があります。
上記の問題に対する最善のアプローチは何ですか?
注:実際のビジネスシナリオでは、さまざまな組み合わせのステータスとチェック(isFailed()canBeModified()など)がはるかに多くなります。
また、ENUMSを使用しない場合でも、任意の方法を提案できます。既存の実装から大きく逸脱したくないので、ENUMSについて言及しました