У меня есть класс, который выполняет некоторую (потенциально избыточную) логику проверки некоторого числа аргументов в функциях, которые он содержит.Для демонстрации у меня есть следующие классы Controller
и ValidationHelper
:
class ValidationHelper {
void validateA(int a, String b) { /*...*/ }
void validateB(int c, double d, String e) { /*...*/ }
void validateC(int f) { /*...*/ }
}
class Controller {
private ValidationHelper helper;
void foo(int a, String b, int f) {
this.helper.validateA(a, b);
this.helper.validateC(f);
// .. Rest of foo
}
void bar(int a, String b, int c, double d, String e) {
this.helper.validateA(a, b);
this.helper.validateB(c, d, e);
// .. Rest of bar
}
}
Мне интересно, есть ли способ улучшить эту архитектуру проверки, чтобы любое добавление в логику проверки не было бы такимнавязчиво, как текущая реализация, и валидация стала намного чище?Если это не достижимо, будут ли у вас какие-либо предложения, если все функции будут иметь одинаковые операторы проверки?(например, foo()
и bar()
, содержащие ТОЛЬКО this.helper.validateA(a,b)
):
class Controller {
void foo(int a, String b, int f) {
this.helper.validateA(a, b);
// .. Rest of foo
}
void bar(int a, String b, int c, double d, String e) {
this.helper.validateA(a, b);
// .. Rest of bar
}
}