¿Qué es Inyección de Dependencias?
Inyección de Dependencias (en inglés Dependency Injection, DI), es un patrón de diseño de software usado en la Programación Orientada a Objetos.
Permite desarrollar componentes desacoplados permitiendo una fácil gestión de cambios a futuro, implementación de pruebas unitarias, factoría para creación de instancias, prevención de fugas de memoria, entre otros.
Conceptos
- Inversión de Dependencia (ID)
- Principio de Diseño: Las clases de alto nivel no deberían depender de clases de bajo nivel; ambas deberían depender de abstracciones (interfaces o clases abstractas).
- Objetivo: Reducir el acoplamiento entre clases para mejorar la modularidad y facilitar la mantenibilidad y la extensibilidad del código.
- Inyección de Dependencia (DI)
- Patrón de Diseño: Una forma de implementar la inversión de control donde las dependencias (objetos) son proporcionadas a una clase en lugar de ser creadas por la clase.
- Métodos: Las dependencias pueden ser inyectadas a través de constructores, métodos setter o directamente en propiedades.
- Inversión de control (IoC)
- Principio General: Refiere a invertir el control del flujo del programa, delegándolo a un contenedor o framework externo.
- Implementación: Se logra mediante técnicas como la inyección de dependencia.
- Efecto: Las dependencias entre componentes se gestionan externamente en lugar de que cada componente gestione sus propias dependencias.
Tipos de inyección de dependencias en .NET
Beneficios
- Aplicación de bajo acoplamiento.
- En caso de cualquier cambio en la implementación del servicio, simplemente cambie el nombre del archivo servicio o Implementación en el archivo program.cs.
- No más cambios en ninguna clase del controlador.
- Facilita la vida del desarrollador