такой кейс: есть набор объектов, у объекта есть метод validate, который проверяет себя на какие-то правила, при соблюдении определенных условий при проверке правил нужно проверить дополнительно и другой объект, но это противоречит правилу single responsibility и. как в таком случае передать управление на другой объект ?
Что чему противоречит? Опиши нормально ситуацию, пожалуйста. Пока что выглядит как кривая архитектура, где validate зачем-то прикручен к объекту, а не вынесен в отдельную сущность
Есть объекты класса 'Task', в данном классе есть метод validate, который проверяет текущую таску на ряд правил и возвращает массив ошибок, у меня есть кейс, когда при проверке этих правил (то есть в самом методе) при соблюдении определенных условий необходимо создать еще один объект класса Task и тоже вызвать у него validate, и вот тут как то не оч выглядит, что объекты класса Task у себя в методах могут создавать еще другие таски, как в таком случае передается управление?
Например, у таски есть условно поле expires_at и successful. И метод валидейт проверяет эти два поля в самой таске. А вся остальная обработка результата этой валидации должна быть вынесена в отдельную сущность
'А вся остальная обработка результата этой валидации должна быть вынесена в отдельную сущность' - почему в отдельную ?
Потому что у тебя таска не должна заниматься валидацией самой себя. Таска работает и ей мешать не надо работать. Максимум что она должна еще делать — говорить о том, правильно ли она отработала или нет. Когда ты нагружаешь в нее бизнес-логику какую-то, которая с самой задачей не связана, то у тебя таски начинают создавать другие таски. И это еще цветочки, потом одна таска начнет останавливать другие, поднимать и шатдаунить все приложение, а потом ты с нуля начнешь все переписывать
Обсуждают сегодня