Cayo Legal
PreguntaPor que es necesaria una interfaz para aplicar la inyección de dependencia? Que pasaría si no la ponemos?
Miguel Teheran
Recuerda que si no usas tipos abstractos te toca tocaria cambiar todos los tipos si necesitas reemplazarlo en cambio con una interfaz solo debees cambiar la implementación sin alterar el código. Por ejemplo:
public class ServicioAzure public class ServicioAWS
Si te toca cambiar de Azure a AWS por un requerimiento te toca ir y cambiar todo el codigo que use ese servicio y renombrar de ServicioAzure a ServicioAWS en cambio si usas interfaces
interface IServicioNube public class ServicioAzure : IServicioNube public class ServicioAWS: IServicioNube
Simplemente ambos servicios implementan la misma interfaz y tu código depende de un componente generico llamado IServicioNube que puede tener multiples implementaciones.
Las interfaces son necesarias para poder aplicar patrones de diseño y lograr hacer pruebas unitarias
Javier Sevillano
Hola Miguel. Puedo entender que la inyección de dependencia hace que una clase no implemente un objeto de una clase específica sino que implemente la inferfaz, como en el ejemplo que mencionas.
Esto se debería de usar en todas las clases donde estemos implementando otras clases adentro, pero si tengo una api de un sistema grande, donde hayan muchísimas clases donde varias de ellas implementen otras clases, se volvería algo muy grande.
