Repaso
English

¿Cuál es la principal ventaja de la dependency injection?

Opciones

  1. Produce menos líneas de código en todas las clases del sistema
  2. Los componentes reciben sus colaboradores de fuera, así que son fáciles de probar (Opción correcta)
  3. Hace que el programa sea más rápido en todos los casos
  4. Elimina la necesidad de escribir interfaces para los componentes

Respuesta

Los componentes reciben sus colaboradores de fuera, así que quedan poco acoplados y son fáciles de probar con fakes

Por qué

Sin DI, una clase crea lo que necesita dentro de sí misma (self.db = PostgresDB()), así que queda pegada a esa elección.

Con DI, la clase lo recibe de fuera (def __init__(self, db)). Quien la llama decide qué implementación pasar: la real en producción, un fake en los tests.

El Depends de FastAPI es un sistema de DI.

Recuerda

No crees tus dependencias dentro; recíbelas.

Términos clave

Practica esta pregunta en Repaso