Я использую Unity в C # для внедрения зависимостей, но вопрос должен быть применим для любого языка и среды, в которых используется внедрение зависимостей.
Я пытаюсь следовать принципу SOLID, и поэтому я получил много абстракций. Но теперь я задаюсь вопросом, есть ли лучшая практика для того, сколько инъекций должен сделать один класс?
Например, у меня есть хранилище с 9 инъекциями. Будет ли это трудно прочитать для другого разработчика?
Инъекции имеют следующие обязанности:
- IDbContextFactory - создание контекста для базы данных.
- IMapper - сопоставление сущностей с моделями доменов.
- IClock - тезисы DateTime.Now, чтобы помочь с юнит-тестами.
- IPerformanceFactory - измеряет время выполнения для определенных методов.
- ILog - Log4net для регистрации.
- ICollectionWrapperFactory - создает коллекции (которые расширяют IEnumerable).
- IQueryFilterFactory - генерирует запросы на основе входных данных, которые будут запрашивать БД.
- IIdentityHelper - Извлекает зарегистрированного пользователя.
- IFaultFactory - создайте разные исключения FaultException (я использую WCF).
Я не очень разочарован тем, как я делегировал обязанности, но я начинаю беспокоиться за удобочитаемость.
Итак, мои вопросы:
Есть ли ограничение на количество инъекций в классе? И если да, то как этого избежать?
Много ли инъекций ограничивают читабельность или действительно улучшают их?