Dependency Injection
La inyección de dependencias traslada la creación y el enlace de las dependencias a un contenedor externo; los componentes reciben sus dependencias por constructor/propiedad/interfaz, desacoplando a los llamadores.
Propósito
Reducir el acoplamiento entre módulos y mejorar la testeabilidad y configurabilidad — la implementación del DIP de SOLID.
Mecanismo
Inyección por constructor: el constructor recibe las dependencias. Inyección por propiedad: los setters las asignan. Inyección por interfaz: se implementa una interfaz para recibirlas. Un contenedor (Spring u otros frameworks DI) inyecta según la configuración. La Inversión de Control (IoC) es la idea central.
Casos de uso
- Diseño desacoplado
- Pruebas unitarias
- Diseño de frameworks