La Inyección de Dependencias es un patrón de diseño que nos ayuda seguir los 5 principios SOLID de la Programación Orientada a Objetos para reutilizar nuestro código de la forma más limpia y escalable posible.
Para estudiar cómo y para qué funciona la Inyección de Dependencias, primero debemos estudiar los 5 principios SOLID. Y antes de eso debemos repasar un poco los 4 pilares de la programación orientada a objetos. ¡Y antes de eso debemos recordar las supuestas ventajas y el verdadero objetivo de la POO!
Haremos esto: en este artículo recordaremos todos estos conceptos para, finalmente, en la segunda parte de este artículo, entrar de lleno con la implementación en código de la inyección de dependencias.
Empecemos desde el principio.
Los Paradigmas de Programación son teoría con la que obtenemos un modelo para resolver diferentes problemas.
Existen diferentes paradigmas como la Programación Orientada a Objetos (POO), Programación Funcional o Programación Estructurada. Cada uno tiene una forma diferente de encontrar soluciones, incluso resolviendo problemas de otros paradigmas anteriores.
La Programación Orientada a Objetos nos “orienta” a identificar y analizar cada elemento de nuestros sistemas como objetos individuales que tienen atributos y comportamientos. Además, es posible que diferentes objetos compartan algunas propiedades o características, lo que significa que reutilizar código y evitar repetidos será muy importante para que nuestro código sea escalable y fácil de mantener.
Los 4 pilares de la POO son:
Recuerda que todo esto lo estudiamos a profundidad en el Curso de Programación Orientada a Objetos: POO.
Más que reglas que debemos seguir estrictamente, los 5 principios SOLID son una guía de buenas prácticas que nos ayudarán a construir código mucho más legible, mantenible y escalable.
El verdadero valor de SOLID está en entender los patrones y herramientas que nos proporciona para casos muy generales. Estos principios serán muy útiles, lo prometo. Entre más los estudiemos y practiquemos, mejor entenderemos cuánto y cuándo vale la pena seguirlos para resolver problemas sin crear otros 50.
Los 5 principios son:
SuperUser
) que herede de User
y añada sus nuevas características.User
tiene el método walk
, SuperUser
también debe tenerlo, así su comportamiento cambie un poco.Puedes profundizar muchísimo más sobre estos 5 principios en las siguientes clases y lecturas:
Los Patrones de Diseño nos ayudan a resolver problemas generales que nos encontramos al tratar de seguir las reglas que implementan los lenguajes que siguen algún paradigma de programación.
Podemos entender los patrones de diseño como “paradigmas de programación” que nos ayudan a cumplir con los “verdaderos paradigmas de programación” de la mejor forma posible, incluso cuando parece que se nos está complicando un poco seguirlos.
Por ejemplo: la programación orientada a objetos nos pide seguir las reglas del encapsulamiento y la abstracción al mismo tiempo, existen patrones de diseño que nos ayudan a cumplir con estas reglas, seguir las buenas prácticas de este paradigma y encontrar las mejores soluciones a los problemas que nos encontramos al programar.
¿Recuerdas que la Inyección de Dependencias es un patrón de diseño que nos ayuda a seguir las buenas prácticas de SOLID?
Bueno, entendiendo todos estos conceptos podemos entrar de lleno a estudiar la inyección de dependencias para salvarnos de muchos dolores de cabeza por tratar de seguir las buenas prácticas.
Una vez la entiendas, la Inyección de Dependencias será tu super poder. Y de eso nos encargaremos en la siguiente parte de este artículo.
Mientras tanto, aprende a elegir el paradigma correcto para tu próximo proyecto con los siguientes cursos:
La próxima vez te contaré cómo continuar tu ruta de aprendizaje con muchos otros cursos. 😉
¡#NuncaParesDeAprender! 🤓💚
Este tema desde hace tiempo me ha parecido interesantísimo, hay un vídeo (un poco viejo pero que ayuda) que me mostraron en la Universidad que me ayudó mucho en entender todo este tópico, se los comparto y espero y les sirva. 👍
https://www.youtube.com/watch?v=_OGGsf1ZXMs
El vídeo es con AngularJS, pero ilustra en JavaScript el problema que resuelve la inyección de dependencias, incluso hay un paquete de npm basado en este inyector llamado Wagner.
https://www.npmjs.com/package/wagner-core
Uff… ¡Genial!
Gracias por las referencias, en la segunda parte también hay más… 😉 👌🙌
muchas gracias por la referencia
Me encanto el blog. interesante!
Muy buena información. Interesante tema. Cuando ves el video, te emocionas (todo lo que puedes crear, y desarrollar). Realizas una “reflexión”, y te percatas que, te falta estudiar más.