Lo relevante es identificar la diferencia entre Inversión de control e inyección de dependencias.
Principio de Inversión de Dependencias
- Los módulos de Alto Nivel no deben depender de los módulos de bajo nivel.
- Se prefieren las abstracciones sobre las implementaciones (Esto explica porque en Spring todo se realiza por medio de abstracciones).
- El código de las clases se debe construir desacoplado
- El Patrón IoC (Inversión de Control) es una implementación de Inversión de dependencias
Inversión de Control (IoC)
- Principio de Hollywood (O el de empleador) «No nos llames, nosotros te llamamos)
- Forma de programación donde el Framework (agente externo) controla el flujo de la aplicación.
Service Locator
- Es un patrón de diseño que desacopla el código mediante eventos
- Inyección de dependencias
Inyección de dependencias
- Patrón de diseño de software
- Es un subtipo de IoC
- Proporciona a los objetos lo que necesitas, se puede realizar de tres formas:
- Constructor
- Propiedad
- Servicio (Interfaz)
Contenedores IoC
Java
- PicoContainer
- NanoContainer
- Peapod
- Gravity
- Google Guice
- Spring Framework
.Net
- Unity
- Autofac
- Ninject
- Structure Map