Inversión de Control (Inversion of Control, IoC)


<!– @page { margin: 2cm } P { margin-bottom: 0.21cm } –>

Es una técnica que inverte el flujo tradicional. Lo tradicional es que el código que implementes llame a las librerías; la inversión de control ocurre cuando son las librerías las que llaman a tu código.

En cierto modo es una implementación del Principio de Hollywood (no nos llames a nosotros; nosotros te llamaremos a tí.), una metodología de diseño de software.

En Spring, la inversión de control consiste en ceder el control a una entidad externa a la aplicación, llamada “Contenedor”, que se encargará de gestionar las instancias (así como sus creaciones y destrucciones).

¿Quién determina cómo deben inyectarse las dependencias?: El framework de Inversión de Control según los ficheros xml de configuración.

Beneficios

  • Elimina la responsabilidad de buscar o crear los objetos dependientes y la traslada a la configuración

  • Reduce el acoplamiento entre objetos

  • Fomenta el diseño basado en interfaces

  • Permite reconfigurar una aplicación sin modificar el código.

Se puede interpretar como que el Contenedor es un robot. Contiene piezas, engranajes, un Sistema Operativo, memoria, microprocesador… El contenedor esta esperando que le indiquemos que debe realizar para hacerlo, necesita que le programemos unas rutinas para trabajar. Esas rutinas configuradas mediante documentos xml, *.properties, permiten al robot saber que es lo que tiene que hacer. Pero es Inteligente, no le tienes que programar todo de arriba abajo, solo unas partes.

Anuncios
Inversión de Control (Inversion of Control, IoC)