Извините, если этот вопрос уже обсуждался, но я не нашел именно то, что хотел. Проблема, с которой я сталкиваюсь, связана скорее с шаблонами и выбором дизайна, чем с самим .NET. Я просто хотел бы получить ваш совет, чтобы узнать, с чего начать мой рефакторинг.
Сегодня я открыл один из классов в моем реальном приложении и обнаружил, что у него есть 13 зависимостей, введенных конструктором !!! Фактически каждый разработчик добавил зависимость, в которой он нуждался, в методе, который он писал.
Одна точка моего понимания DI состоит в том, что когда мы вводим зависимость конструктором, это означает, что это обязательная зависимость и должна использоваться во всех методах класса. Если нам нужна определенная зависимость только в одном методе данного класса, что это значит для вас?
- Данный класс делает слишком много? Я должен рассмотреть, чтобы создать новый тип только с необходимой зависимостью?
- Я должен вводить по собственности? Но в этом конкретном методе зависимость является обязательной, поэтому я не думаю, что это хороший выбор.
- Нужно ли вводить методом?
Что трудно, так это найти правильный баланс. В действительности иногда невозможно инкапсулировать поведение в чистом виде.
Я собирался создать что-то вроде сервисного агрегатора, чтобы скрыть связанные зависимости за одним из них, но хотел бы, чтобы у вас были другие советы. Заранее спасибо.