Ejemplo inversión de control(Sin Spring)
Hoy vamos a crear un ejemplo práctico aplicando el concepto de inversión de control e inyección de dependencia, pero sin utilizar Spring. Si todavía no has revisado la entrada sobre inversión de control, te recomiendo que lo hagas, antes de continuar con el ejemplo.
Continuando, ingresa al IDE Eclipse para iniciar a programar la practica de hoy.
Ejemplo
El ejemplo consiste en crear un programa que permita crear objetos de tipo
Computador, a su vez Computador estará formado de un Procesador, por último,
que permita cambiar de Procesador aplicando la inversión de control.
Vamos a crear 3 clases Java,
Computador, Procesador y TestIoC respectivamente, donde TestIoC será la
clase principal(implementará el método main).
Clase Procesador
Clase Computador
|
Clase Computador |
Clase TestIoC
|
Clase TestIoC |
Resultado
Inversión de control
¿Qué proceso se va a invertir?
La creación del objeto Procesador definido en la clase Computador
¿Qué partes participan en la inversión de control?
La clase Computador y la clase Principal TestIoC.
Implementación
Hasta el momento, la clase
Computador es quien construye el objeto Procesador, observe la
siguiente imagen:
Ahora vamos a realizar algunos cambios en la clase Computador para invertir el control respecto a creación del objeto Procesador, hacemos lo siguiente:
Con esta implementación, la clase Computadora tendrá una dependencia de Procesador, la que se proveerá(inyectar) a través del constructor.
¿Entonces, quién tiene ahora el control para crear el objeto procesador?
Ya hemos logrado que la clase Computador no tenga el control para crear el objeto Procesador, entonces, a quien delegamos ahora ese proceso. El control se cederá a la clase TestIoC , quien tiene el método main.
La clase TestIoC será quien se encargue de crear y configurar el objeto Procesador, a esta altura ya hemos invertido el control. Observe la imagen:
¿Qué ventajas tiene aplicar el concepto de inversión de control?
Permite desacoplar el código, es decir, tomando el ejemplo
anterior, si se desea cambiar de procesador a la computadora, lo
que debe hacer es crear una clase que extienda de Procesador y
utilizarla como dependencia para el computador.
Vamos a cambiar de procesador para ejemplo anterior
Clase ProcesadorIntel
Creamos la clase
ProcesadorIntel que extienda de Procesador
y sobrescribimos el mensaje del método procesar.
Cambiar de implementación
Con un simple cambio, hemos cambiado el tipo de dependencia, y
todo esto
sin modificar ni una sola línea en la clase Computador.
La inversión de control nos permite cambiar el tipo implementación de forma flexible, sin alterar un componente base de la aplicación.
¡ Nos vemos pronto 👋👍!
Comentarios
Publicar un comentario