Как правильно реализовать множество проверок объекта?
Добрый день.
У меня вопрос по проектированию. У меня есть достаточно большой объект. Мне необходимо подвергнуть этот объект множеству проверок. Таких проверок 20+.
Сейчас у меня реализована следующая схема - Существует 20+ классов проверок расширяющие один интерфейс в котором прописаны методы check() и insert(). В init() создаю все эти классы проверок и у каждого вызываю метод check().
Скорее всего это неправильный подход. Хотелось бы увидеть какие-то best practices по решению такой задачи.
Сергей Горностаев, прочел страницу на хабре по стандарту JSR 303, но кажется это немного не то.
В моем случае проверка должна осуществляться уже после того как объект создан и проверять нужно не на соответствие каким-то шаблонам. К примеру объект А состоит из объектов B,C,D. Эти объекты состоят из массивов из других объектов. А проверять нужно на C.field == D.T.field (в качестве примера).Если условие истина, то проверять еще другие поля и т.п.
В топике нет проблемы как таковой. Проверки можно делать по разному. Но главной метрикой скорее всего будет - компактность кода и скорость внесения в него изменений. Из best practices. Заводите вспомогательный класс. Helper. И делаете 20+ методов.
смотря какой вид проверки нужен - все случаи или до первой неудачной
для первого можно предложить Builder который собирает все нужные классы проверки и наружу смотрит только один метод fun check(): Result
для второго почти такой же билдер но с методом fun next(): Result и пока не null например, т.е. проверки закончились (или пока в Result не пришла ошибка)