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 :D
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)