[MUSIC]
Echemos ahora un vistazo penetrante a la inyección de dependencia.
¿Qué es exactamente la inyección de dependencia y cómo es relevante para Angular?
Hablemos de eso a continuación.
Entonces, ¿qué es exactamente la inyección de dependencia?
Inyección de dependencia Es un patrón de diseño de software.
Este es un patrón que es útil para implementar aplicaciones donde tiene
un objeto que depende de otro objeto de una manera que es eficiente.
Ahora la Inyección de Dependencia, como nos damos cuenta, tiene dos partes.
Dependencia e inyección.
Hablemos primero de la dependencia.
La dependencia significa que su objeto depende de otro objeto.
Entonces, es por eso que eso es una dependencia entre su objeto y otro objeto.
Injection está hablando de pasar la dependencia a un objeto dependiente.
Entonces, si tienes un objeto, si hay un mecanismo que permite
puedes tomar un objeto y luego ponerlo a disposición de un segundo objeto, por lo que
que el otro objeto pueda hacer uso de él sin tener en cuenta
exactamente cómo se implementa o se borra el primer objeto.
Entonces, en este caso, el objeto que es dependiente no es consciente,
o no necesita preocuparse por cómo se implementa el otro objeto.
Solo necesita hacer uso de él, dentro de su objeto, dondequiera que esté.La inyección de dependencia
fue acuñada por Martin Fowler en 2004.
Y es un diseño de software útil que enfatica aún más en la dependencia.
Si un objeto depende de otro objeto
hay tres formas en que puede acceder al otro objeto.
1, Puede crear el objeto dependiente en sí mediante el uso del nuevo operador
que ha visto esto en el caso de las clases.
Entonces, por ejemplo, si necesita un nuevo objeto de un tipo de clase,
entonces crea ese objeto usando el nuevo dentro de lenguajes, como C ++ o
Java, e incluso escribe script.
Entonces, puede hacer uso de ese objeto en particular.
La otra forma es declarar el otro objeto como una variable global, y
luego busca la dependencia usando la variable global.
La tercera forma de hacer esto es tener la dependencia pasada a ti,
donde sea que sea necesaria.
Así que si dependes de otra cosa, entonces esa otra cosa será
inyectada en ti por un sistema donde sea que sea requerido.
Por lo tanto, ahora la tercera opción le da mucha flexibilidad en la forma
que el software está diseñado.
Entonces, en este enfoque, en el tercer enfoque,
no hay necesidad de codificación dura después de la dependencia.
En los dos primeros enfoques, la dependencia está codificada allí,
porque necesita ser plenamente consciente de cómo crea
el objeto del que depende, dentro de su propio objeto.
En el tercer objeto,
porque el otro objeto se está inyectando en ti siempre que lo necesites,
realmente no te importa cómo se crea, siempre y cuando tengas acceso a él.
Y la otra ventaja que este enfoque trae consigo es que
facilita la facilidad de probar su aplicación porque cuando
necesita un objeto del que depende, en lugar de pasar
el objeto dependiente, incluso podría crear un objeto simulado del tipo y
luego pasarlo en para probar su objeto específico.
Esta separación entre el objeto dependiente y el otro objeto es muy,
muy útil como nos damos cuenta en la realización de pruebas.
Discutiremos esto brevemente cuando veamos las pruebas angulares más adelante en este curso.
Dependency Injection trae cuatro roles diferentes que debemos considerar.
Primero, por supuesto, es el servicio que vas a hacer uso dentro de
tu componente, por ejemplo, y que necesita ser inyectado en.
En segundo lugar el cliente que depende del servicio
que en este caso es su componente.
Tercero, la interfaz, una vez inyectada cómo hacer uso de ese servicio.
Y finalmente el inyector, la entidad responsable de
inyectar ese objeto en su objeto.
Como pronto se dará cuenta, la inyección de dependencia express angular
en gran medida en la forma en que se implementa.
Así que esto es lo que facilita la separación de una lógica de negocio
de la construcción de dependencias para que pueda escribir su lógica de negocio en
el objeto independiente y luego inyectarlos donde sea necesario.
Y la dependencia se pasa al objeto que la consume
donde sea que se necesite.
Ahora, ¿cómo se cuida esta inyección?
Esta inyección es atendida por el subsistema de inyección angular.
El subsistema de inyección angular se encarga de la creación de estos servicios y
, a continuación, inyectarlos en su componente donde los necesite.
Por lo tanto, también se encarga de resolver las dependencias y también,
proporcionar esos objetos a otros componentes que requieren estos objetos.
Así que el subsistema de inyector angular proporciona todos estos mecanismos para
nosotros para habilitar esto.
¿Cómo funciona realmente?
Lo veremos en el ejercicio que sigue,
donde usaremos un servicio que creamos En los componentes
que diseñamos para nuestra aplicación Angular.
[MÚSICA]