Red de conocimientos turísticos - Información de alquiler - ¿Cuáles son los beneficios de la inyección de dependencia?

¿Cuáles son los beneficios de la inyección de dependencia?

La generación del objeto se define en XML, por lo que cambiar la subclase de implementación será tan sencillo como modificar el XML (normalmente este tipo de objetos se implementan en alguna interfaz). Esto permite incluso el intercambio de objetos en caliente.

Inyección de dependencia:

La inyección de dependencia es una parte importante de la filosofía de diseño de Spring. Se refiere a Ioc o DI. Es una regla importante de la programación orientada a objetos y puede reducir los programas de computadora. grado de acoplamiento. La inversión de control también tiene un nombre, llamado inyección de dependencia (DependencyInjection).

IoC también se conoce como "Principio de inversión de dependencia (DependencyInversionPrinciple)". Casi todos los marcos utilizan la tecnología "Fowler2004", que es una aplicación de los principios de IoC por parte de programadores de lenguajes de programación orientados a objetos como SmallTalk, C++, Java o varios lenguajes .NET.

Al aplicar la inversión de control, un objeto es creado por una entidad externa. Cuando la entidad externa crea el objeto, pasará una referencia al objeto del que depende, afectando así a todos los objetos del sistema. son gestionados. También se puede decir que las dependencias se inyectan en el objeto. Por tanto, la inversión de control es la inversión de responsabilidad con respecto a cómo un objeto obtiene una referencia a su objeto dependiente.

DependencyInjection e InversionofControl son el mismo concepto. Su significado específico es: cuando un rol (quizás una instancia de Java, la persona que llama) necesita la ayuda de otro rol (otra instancia de Java, la persona que llama), en el proceso de programación tradicional, generalmente es la persona que llama quien crea una instancia de la persona que llama. . Sin embargo, en Spring, el trabajo de crear la instancia de la persona que llama ya no lo realiza la persona que llama, por lo que se llama inversión de control. El trabajo de crear la instancia de la persona que llama generalmente lo realiza el contenedor Spring y luego se inyecta en la persona que llama; También se llama inyección de dependencia.

Ya sea inyección de dependencia o inversión de control, Spring utiliza una forma dinámica y flexible para administrar varios objetos. En lo que respecta a la implementación específica, los objetos son transparentes. Antes de aprender sobre la inyección de dependencia, vea a continuación cómo se resuelve este problema en varias formas sociales: Una persona (instancia de Java, persona que llama) necesita un hacha (instancia de Java, persona que llama).

(1) En las sociedades primitivas, casi no existía división social del trabajo. La persona que necesita un hacha (el invocador) debe afilarla él mismo (el invocado). La situación correspondiente es: la persona que llama en el programa Java crea la persona que llama él mismo.

(2) Al entrar en la sociedad industrial, aparecieron las fábricas. Las hachas ya no las fabricaba la gente corriente, sino que se producían en fábricas. En este momento, la persona que necesita el hacha (la persona que llama) encuentra la fábrica y compra el hacha sin preocuparse por el proceso de fabricación del hacha. Esto corresponde al patrón de diseño de fábrica simple en los programas Java.

(3) En una sociedad "bajo demanda", una persona que necesita un hacha no necesita encontrar una fábrica, sino que se sienta en casa y da una instrucción simple: necesita un hacha. El hacha aparecerá naturalmente frente a él. Esto corresponde a la inyección de dependencia de Spring.

En el primer caso, el llamador de la instancia de Java crea la instancia de Java llamada, lo que necesariamente requiere que la clase Java llamada aparezca en el código del llamador. No se puede lograr un acoplamiento flojo entre los dos.

El segundo caso es que la persona que llama no necesita preocuparse por el proceso de implementación específico de la persona que llama, y ​​solo necesita encontrar una instancia que cumpla con ciertos estándares (interfaces) para usar. En este momento, el código de llamada es programación orientada a interfaz, que puede desacoplar a la persona que llama y al destinatario de la llamada. Es por eso que el patrón de fábrica se usa ampliamente. Sin embargo, la persona que llama necesita localizar la fábrica él mismo y la persona que llama está acoplada a una fábrica específica.

En el tercer caso, la persona que llama no necesita localizar la fábrica por sí misma; cuando el programa se ejecuta y necesita la persona que llama, el sistema proporcionará automáticamente la instancia de la persona que llama. De hecho, tanto la persona que llama como la persona que llama están bajo la administración de Spring, y Spring proporciona las dependencias entre ellos.

La llamada inyección de dependencia significa que durante la ejecución del programa, si necesita llamar a otro objeto para obtener ayuda, no es necesario crear una persona que llama en el código, sino confiar en la inyección externa. La inyección de dependencia de Spring casi no tiene requisitos para la persona que llama y la persona que llama, y ​​es totalmente compatible con la gestión de dependencia entre POJO.

Suele haber dos tipos de inyección de dependencia:

1.

2. Inyección de constructo.

Suele haber dos tipos de inyección de dependencia:

1.