Сервисы и их зависимости
Допустим, есть сервис S1, он делает какие-то операции с какой-то сущностью, т.е. он зависит от неё, пусть это будет D1. Теперь появилась необходимость в методе, который работает с D2. Можно создать сервис S2. Точно также сервис S3 с зависимостью D3. Но далее может оказаться, что нам необходим сервис, который работает одновременно и с D1, и с D2. Можно наплодить 100500 сервисов всевозможных комбинаций, но, во-первых, возможно они будут иметь пересекающийся функционал (а то и идентичный), а во-вторых, с ними будет неудобно работать их клиентам.
Заметил, что всегда реализовывал эту проблему «в лоб», делал один большой сервис с множеством зависимостей, как-то не придавал этому значения. И поймал себя на мысли, что не пойму, как это правильно реализовать. Любые решения, что мне приходят на ум, мне не нравятся. Разве что если реализовывать это наследованием, чтобы взять функционал от базового сервиса и расширить его с новой зависимостью, но тогда нужно менять подход с фиксацией данных (например, если это БД, то внесение самих изменений вынести в отдельный метод), плюс ко всему в .NET (и в Java, насколько я знаю) нет множественного наследования, т.е. взять базовый функционал от нескольких сервисов не получится...
34 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів