Como lidar com a injeção excessiva de construtores no .NET

Sinto muito se essa pergunta já foi discutida, mas não encontrei exatamente o que queria. O problema que estou enfrentando é mais sobre padrões e opções de design do que sobre o próprio .NET. Gostaria apenas de ter seu conselho para saber por onde começar minhas refatorações.

Hoje eu abro uma das classes na minha aplicação atual e descobri que ela possui 13 dependências injetadas pelo construtor !!! De fato, cada desenvolvedor adicionou a dependência necessária no método que ele estava escrevendo.

Um ponto do meu entendimento do DI é que, quando injetamos uma dependência pelo construtor, isso significa que é uma dependência obrigatória e deve ser usada em todos os métodos da classe. Se precisarmos de uma dependência específica em apenas um método da classe fornecida, o que isso significa para você?

A classe dada faz muito? Eu deveria considerar criar um novo tipo apenas com uma dependência necessária?Eu devo injetar por propriedade? Mas nesse método específico, uma dependência é obrigatória, então não acho que seja uma boa escolha.Eu deveria injetar pelo método?

O difícil é encontrar o equilíbrio certo. Na realidade, às vezes não é possível encapsular o comportamento da maneira limpa.

Eu estava pensando em criar algo como agregador de serviço para impedir a dependência relacionada por trás de um deles, mas gostaria se você tivesse outros conselhos. Desde já, obrigado.

questionAnswers(5)

yourAnswerToTheQuestion