Lección 5: DIP e inyección de dependencias
Una clase de negocio que crea new SmtpMailer() dentro de sí misma queda soldada a un solo proveedor: no puedes probarla sin un servidor de correo real, ni cambiar de proveedor sin editarla. En esta lección invertimos la dirección de la dependencia: el servicio depende de una interfaz, y la implement
DIP es como un enchufe de pared: la lámpara no está soldada a la central eléctrica — ambos lados se conectan a un conector estándar, así que cualquiera puede reemplazarse sin tocar al otro.
- Principio de inversión de dependencias (DIP)
- La lógica de negocio depende de una interfaz abstracta, y la implementación concreta se inyecta desde afuera — así la infraestructura puede cambiarse y probarse fácilmente.
- inyección por constructor
- Un patrón donde la dependencia entra como parámetro del constructor y se guarda en un campo privado readonly — quien compone la aplicación elige la implementación.