Inyección de Dependencia | Explicación Completa (Definición, uso, estructura y ejemplo)
Tags: spanish
Published: 2023-06-12 18:32:12

Inyección de Dependencia | Explicación Completa (Definición, uso, estructura y ejemplo)

## Introducción

Hola buenas, mi nombre es Daniela Barazarte y te quiero dar la bienvenida a esta explicación completa sobre la inyección de dependencias. Esta explicación será intuitiva y simple así como todas las explicaciones que forman parte de #DetectaLaLogica.

Si prefieres los videos, aquí tienes un tutorial completo hecho por mí en YouTube, está en español pero también tiene subtítulos: https://www.youtube.com/watch?v=Sz4acLjFvrU

## <u>Teoría</u>
### Definición de cada palabra
**"Patrón de diseño"**
- **Patrón**: es un tipo de sucesos u objetos repetitivos
![Patrón de diseño](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a8hizh9zs3bzgaimxs1n.png)
- **Diseño**: actividad creativa que tiene por fin proyectar objetos que sean útiles y estéticos

**"Inyección de dependencias"**
- **Inyección**: se refiere al acto de introducir algo en un elemento

![Inyectadora](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3azdpqk4qt2u5vxxq9pt.png)
- **Dependencia**: se refiere a una relación en la que una cosa necesita de otra para funcionar correctamente

![Relación](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zxaoda69sthrb99v7zkl.png)


### Definición completa
La inyección de dependencia es un patrón de diseño de software que consiste en suministrarle a un objeto todas las dependencias que necesita para funcionar, en lugar de que este objeto las cree por sí mismo.

### #DetectaLaLógica
Inyección de dependencia se llama así porque estás inyectando componentes de un objeto a otro y esa relación es una dependencia porque sin esa inyección, el objeto no podría funcionar correctamente.

## <u>Práctica</u>
### Ejercicio
Debes hacer un proyecto de consola que genere un ticket para entrar a un juego de fútbol.

Puedes hacerlo de muchas maneras, pero probaremos el método de hacerlo con la Inyección de Dependencias.


**<u>Método: sin inyección de dependencia
</u>**


![Sin inyección](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ymejw9a7oz4bvrvhh0v.png)

Los métodos, vistas, clases, código y otros componentes de los tickets estarían desordenados en el código y se juntaría con el código del estadio de futbol.

**<u>Método: inyección de dependencia
</u>**


![Con inyección](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/md7f5rf8cnbdol35i5p4.png)


Los métodos, vistas, clases, código y otros componentes de los tickets están totalmente ordenados y separados del código del estadio de futbol. Ticket le pasa sus componentes al estadio mediante la inyección de dependencia (esa dependencia está pintada en color dorado).

## Importancia
**El patrón de diseño inyección de dependencia tiene varios beneficios:**

- **Mayor reutilización de código**: si yo quisiera reutilizar el componente de ticket y colocarlo en otro proyecto, por ejemplo, un concierto lo podría hacer
- **Mayor flexibilidad**: permite que los componentes puedan ser cambiados fácilmente sin afectar al resto de la aplicación.
- **Divide el código en partes más pequeñas y claras**: lo que hace que el código sea más fácil de entender y mantener.


## Despedida

(Recuerda) #DetectaLaLógica: Inyección de dependencia se llama así porque estás inyectando componentes de un objeto a otro y esa relación es una dependencia porque sin esa inyección, el objeto no podría funcionar correctamente.

Puedes practicar este tema en mi repositorio de GitHub (Código en lenguaje C#): https://github.com/danielabarazarte/DetectaLaLogica/tree/main/Conceptos

Muchas gracias por leer, si tienes alguna duda puedes comentarla y también puedes seguirme para ver mas posts de este estilo, gracias <3.