Estoy escribiendo mi segunda aplicación de la vida real, que usa DI. En general, creo que ha permitido un mejor diseño. Pero hay algunos olores de código, que no sé cómo resolver.DI: ¿Cuánto inyectar?
Prefiero usar la inyección de constructor y he observado a menudo que necesito alrededor de 5 o más objetos para ser inyectados en el constructor. Parece ser demasiado, tal vez es un problema de diseño, no obtener el SRP correcto. Pero creo que mi uso de DI también debe ser culpado.
Estoy buscando "mejores prácticas" o "regla de oro", en general parece que inyecté todo, eso no está en el framework .Net, ¿es eso exagerar?
Para comenzar, aquí hay dos ejemplos de objetos que se inyectan, pero no estoy seguro.
Los objetos que son verdaderos singletons como la configuración de la aplicación o esas pequeñas clases de utilidades, ¿los inyecta? Parece que se inyectan muy a menudo, la única razón para inyectarlos parece ser permitir cambiar el valor para la prueba, pero Ayende parece haber resuelto el problema de otra manera: http://ayende.com/Blog/archive/2008/07/07/Dealing-with-time-in-tests.aspx.
Objetos comunes como el registro, que se utilizan en casi todos los objetos, ¿deberían inyectarse?
Si accede a la configuración de la aplicación como global (o estática), entonces su clase depende de todo de ese objeto y sería difícil de usar en otro lugar. Es mejor inyectar la parte específica de la configuración que le interesa a su objeto. –