Qué es Inversion of Control
Inversión de control en arquitectura
Inversion of Control (IoC) es un principio de diseño donde el control del flujo del programa se transfiere del código de la aplicación a un framework o contenedor externo.
Principales patrones IoC
- Inyección de Dependencias (DI) — inyectar dependencias a través de constructor, setter o interfaz
- Service Locator — registro centralizado de servicios
- Factory Pattern — crear objetos a través de fábricas
- Template Method — definir esqueleto del algoritmo en clase base
Beneficios de IoC
- Acoplamiento débil entre componentes
- Pruebas simplificadas mediante mocks
- Configuración flexible de dependencias
- Reutilización de código
Contenedores IoC populares
- Spring (Java) — el contenedor IoC más popular
- ASP.NET Core DI — DI integrado en .NET
- InversifyJS — IoC para TypeScript/JavaScript
- Autofac, Ninject — alternativas para .NET