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