Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Entendiendo la inyección de dependencias

5/17
Recursos

Aportes 8

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Nicolas, en este video tuviste un error de concepto. El Singleton Pattern no hace parte de los principios SOLID (S: Single Responsibility)… de hecho, este patrón está incluido dentro de los STUPID principles (Singleton, Tight Coupling, Untestability, Premature Optimization, Indescriptive Naming, Duplication), que es lo opuesto a SOLID.

Incluso, el Singleton viola el OPEN/CLOSE principle.

Example Singleton

El tema de la inyección de dependencias puede dar para un curso entero sobre patrones de diseño, principios SOLID y patrones de arquitectura.

Creo que el profe hizo un resumen lo mas corto posible para entenderlo y no verlo tan abstracto, pero me gustaría aclarar lo siguientes:

El origen es por los principios SOLID, tenemos la S que se refiere a ‘Dependency Inversion’ (Inversion de dependecias), que en pocas palabras quieres decir que un sistema flexible es aquel que se refiere a abstracciones.

La ‘Dependency Injection’ (Inyeccion de dependencias) es un patron de diseño que implementa el principio de ‘Dependency Inversion’ de los principios SOLID 😉

Para los que de pronto sientan dudas con el patrón singleton aquí dejo el enlace de una clase con el buen Mauro, que en excelente Singleton Platzi Que hace parte del curso de buenas practicas para escribir código.

Entendiendo la inyección de dependecias

Patrón de Inyección de dependencias:

Es un principio de arquitectura donde nos permite desacoplar las cosas y simplemente un controlador por medio de su constructor puede decir que utiliza el servicio A o el servicio B

Un controlador puede inyectar mas de un servicio, tantos como quiera

Esto se logra a través del patrón singleton, lo que nos permite que una vez creada nuestra clase (servicio) la instancia de nuestro servicio se pueda utilizar para los demás controladores, sin necesidad de crear varias instancias del mismo servicio.

Decorador @inyectable

Para que lo anterior funcione en NestJS todos nuestros controladores deben tener el decorador @inyectable que le indica a nestJSque debe manejar esto como una dependencia y cumplir con el patrón singleton

Un servicio solo pertenece a un Modulo

What?

Concepto SINGLETON

👏