He estado usando StructureMap recientemente y he disfrutado la experiencia a fondo. Sin embargo, puedo ver cómo uno puede dejarse llevar fácilmente interconectando todo y terminar con clases que llevan una gran cantidad de interfaces a sus constructores. A pesar de que realmente no es un gran problema cuando se utiliza un marco de inyección de dependencia, todavía se siente que hay ciertas propiedades que realmente no necesitan ser interconectadas solo por el hecho de interconectarlas.¿Cuándo usa la inyección de dependencia?
¿Dónde se dibuja la línea sobre qué interfaz interactuar frente a solo agregar una propiedad a la clase?
Me he quedado sin votos hoy, así que no puedo votar, pero me gusta su respuesta. Tienes razón, solo porque usas DI no significa que tu código esté de hecho débilmente acoplado. –
Creo que no estoy de acuerdo con esta respuesta. Que yo sepa, el mayor y más importante beneficio del código DInjected es la capacidad de prueba. Literalmente no puedes leer un solo libro sobre Dependency Injection ni Desarrollo basado en pruebas, sin que uno se refiera al otro. Van juntos como avena y pasas. – BTownTKD
El código dinilado es más fácil de simular, lo que facilita la creación de pruebas para las cosas que usan ese código inyectado. Aún así, creo que las pruebas por sí solas no deberían ser una razón para usar la inyección de dependencia. La inyección de dependencia agrega complejidad (más interfaces, arquitectura menos directa) por lo que si no la reduce considerablemente de otras formas (aparte de las pruebas) o resuelve un problema específico que usted tiene, no vale la pena agregarlo. –