170 похожих чатов

Есть вопрос по ооп, по солиду есть правило single responsibility,

такой кейс: есть набор объектов, у объекта есть метод validate, который проверяет себя на какие-то правила, при соблюдении определенных условий при проверке правил нужно проверить дополнительно и другой объект, но это противоречит правилу single responsibility и. как в таком случае передать управление на другой объект ?

6 ответов

24 просмотра

Что чему противоречит? Опиши нормально ситуацию, пожалуйста. Пока что выглядит как кривая архитектура, где validate зачем-то прикручен к объекту, а не вынесен в отдельную сущность

Maxim-Akhmerov Автор вопроса
Илья Власов
Что чему противоречит? Опиши нормально ситуацию, п...

Есть объекты класса 'Task', в данном классе есть метод validate, который проверяет текущую таску на ряд правил и возвращает массив ошибок, у меня есть кейс, когда при проверке этих правил (то есть в самом методе) при соблюдении определенных условий необходимо создать еще один объект класса Task и тоже вызвать у него validate, и вот тут как то не оч выглядит, что объекты класса Task у себя в методах могут создавать еще другие таски, как в таком случае передается управление?

Maxim Akhmerov
Есть объекты класса 'Task', в данном классе есть м...

Например, у таски есть условно поле expires_at и successful. И метод валидейт проверяет эти два поля в самой таске. А вся остальная обработка результата этой валидации должна быть вынесена в отдельную сущность

Maxim-Akhmerov Автор вопроса
Илья Власов
Например, у таски есть условно поле expires_at и s...

'А вся остальная обработка результата этой валидации должна быть вынесена в отдельную сущность' - почему в отдельную ?

Maxim Akhmerov
'А вся остальная обработка результата этой валидац...

Потому что у тебя таска не должна заниматься валидацией самой себя. Таска работает и ей мешать не надо работать. Максимум что она должна еще делать — говорить о том, правильно ли она отработала или нет. Когда ты нагружаешь в нее бизнес-логику какую-то, которая с самой задачей не связана, то у тебя таски начинают создавать другие таски. И это еще цветочки, потом одна таска начнет останавливать другие, поднимать и шатдаунить все приложение, а потом ты с нуля начнешь все переписывать

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта