polyanin
@polyanin
Golang, PHP & Symfony developer

Почему инъекция сервиса в сущность считается плохой практикой?

Привет!
Почему инъекция сервиса в сущность считается плохой практикой?
Например UserPasswordEncoderInterface в User->setPassword
или валидатор NotBlank в User setUsername
  • Вопрос задан
  • 310 просмотров
Пригласить эксперта
Ответы на вопрос 1
@BorisKorobkov
Web developer
Правильнее сказать не "плохая практика", а "нарушает SOLID".
"Сервис в сущности" нарушает принцип единственной ответственности (SRP), совмещая в одном объекте как представление самого объекта, так и какую-то внешнюю логику.
Это не значит, что это "плохо" или "хорошо"! Есть разные (иногда взаимоисключающие) подходы, не обязательно упарываться на строгое следование им всем. Вот пример, когда это можешь сильно усложнить разработку: https://habr.com/ru/post/153225/

UserPasswordEncoderInterface и NotBlank - это не сервисы, а валидаторы. Они относятся к внутренней логике объекта, не только не нарушают SRP, но и должны быть именно в этом объекте.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы