En este segundo vídeo de la serie de SOLID vamos a ver qué es y qué beneficios aporta el Principio de Inversión de Dependencias. Como de costumbre, vamos a enfocarlo de la manera más práctica posible, refactorizando un código para pasar a aplicar este principio.
En los vídeos anteriores ya vimos cómo configurar namespaces siguiendo PSR-4 y usar el autoloader de Composer, cómo aplicar el estándar PSR-2 de estilo de código y, más concretamente en la serie sobre SOLID, ya hemos visto el Principio de Responsabilidad Única y de Segregación de Interfaces. Os recomiendo echarles un vistazo 🙂
Índice del vídeo
- 1:03 – Explicación código base (contexto)
- 2:50 – Escenario 1: Código altamente acoplado y creando las instancias de los colaboradores en el punto en el que se necesitan
- 3:55 – ¿Por qué es malo el acoplamiento de código?
- 6:10 – Diagrama de clases del escenario 1
- 7:10 – Escenario 2: Refactoring para introducir el concepto de inyección de dependencias. Código altamente acoplado pero creando las instancias de los colaboradores fuera de la clase cliente
- 9:00 – ¿Qué beneficios tiene la inyección de dependencias?
- 10:39 – Escenario 3: Refactoring para aplicar el Principio de Inversión de Dependencias (Dependency Inversion Principle, DIP). Código desacoplado y cambiable.
- 11:38 – Explicación de la interface introducida. Diseño por contratos
- 13:35 – ¿Qué beneficios tiene la inversión de dependencias?
- 15:30 – Diagrama de clases aplicando el principio de inversión de dependencias
- 16:05 – Inversión de dependencias como nunca te lo han explicado 😀
Vídeo
Material relacionado
- [artículo] Inversion of Control Containers and the Dependency Injection pattern: Artículo de Martin Fowler acerca de la inyección e inversión de dependencias
- [paper] The Dependency Inversion Principle: Paper publicado por ObjectMentor
- [tutorial] SOLID: Part 4 – The Dependency Inversion Principle: Serie de tutoriales de Tuts+ sobre SOLID
- [post] The “D” Doesn’t Stand For Dependency Injection
Siguientes vídeos
- ¡Entrevista!
- DTOs / Modelos de dominio anémicos vs Modelos de Dominio (Nivel medio)
- Composition over Inheritance – Un punto de inflexión (Nivel medio)