使用したいレガシーバリデータークラスがあります。1 ~ 3 の異なるフィールドを検証するためのすべての順列を提供します。
class Validator {
Checker Validator.A, Validator.B, Validator.C;
Checker[] ABC = {Validator.A, Validator.B, Validator.C};
Checker[] AB = {Validator.A, Validator.B};
Checker[] BC = {Validator.B, Validator.C};
Checker[] AC = {Validator.A, Validator.C};
}
私はこのクラスに何の影響力も持っていません。ただし、これらのチェッカーのいずれかを使用する必要があります。
空でないフィールドに基づいて、必要なバリデーターを選択したいと考えています。したがって、次の switch ステートメントを書きました。しかし、私にはそれは非常に醜いようです。どうすればこれを改善できますか?
String a, b, c;
boolean isA = !a.isEmpty();
boolean isB = !b.isEmpty();
boolean isC = !c.isEmpty();
Checker[] checker;
if (isA && isB && isC) {
checker = Validator.ABC;
} else if (isA && isB) {
checker = Validator.AB;
} else if (isA && isC) {
checker = Validator.AC;
} else if (isB && isC) {
checker = Validator.BC;
} else if (isA) {
checker = Validator.A;
} else if (isB) {
checker = Validator.B;
} else if (isC) {
checker = Validator.C;
}