Cómo lidiar con la sobreinyección del constructor en .NET

Lo siento si esa pregunta ya fue discutida, pero no encontré exactamente lo que quería. El problema al que me enfrento es más sobre patrones y opciones de diseño que sobre .NET en sí. Solo me gustaría tener su consejo para saber dónde comenzar mis refactorizaciones.

¡Hoy abrí una de las clases en mi aplicación real y descubrí que tiene 13 dependencias inyectadas por el constructor! De hecho, cada desarrollador agregó la dependencia que necesitaba en el método que estaba escribiendo.

Un punto de mi comprensión de DI es que cuando inyectamos una dependencia por constructor, significa que es una dependencia obligatoria y debe usarse en todos los métodos de la clase. Si necesitamos una dependencia particular solo en un método de la clase dada, ¿qué significa para usted?

¿La clase dada hace demasiado? ¿Debería considerar crear un nuevo tipo solo con una dependencia necesaria?¿Debo inyectar por propiedad? Pero en ese método en particular, una dependencia es obligatoria, así que no creo que sea una buena opción.Debería inyectar por método?

Lo difícil es encontrar el equilibrio adecuado. En realidad, a veces no es posible encapsular el comportamiento de forma limpia.

Estaba considerando crear algo como un agregador de servicios para una dependencia relacionada con uno de ellos, pero me gustaría si tuviera otros consejos. Gracias por adelantado.

Respuestas a la pregunta(5)

Su respuesta a la pregunta