Novacreations

Desarollando Software

 Al momento de crear eventos en una interfaz AWT, generalmente nuestro código se llena de condicionales para averiguar cual es la acción que se realizó. Un típico caso sería el siguiente:

Esto sucede por que para obtener cuál de las acciones del usuario disparó el evento, el callback de la interfaz ActionListener solamente nos regresa un parámetro, que es un objeto de tipo ActionEvent. Sin embargo, existe una manera de ligar el nombre del evento con métodos previamente definidos en nuestra clase.

Para lograr este efecto, nos apoyamos en una de las características más poderosas de Java: el mecanismo de Reflexión.

La Reflexión en Java es una manera en la que el usuario puede obtener información de un objeto, tal y como su nombre, métodos, atributos etc, sin contar previamente con estos datos, es decir, en tiempo de ejecución. Esto es muy útil en el ambiente de sistemas distribuidos, en donde una interfaz de servicios remotos puede definir una interfaz con ciertos métodos y en tiempo de ejecución recibir distintos objetos que implementen esa interfaz, aunque con características propias. Esto hace que nuestro código sea extensible y muy eficiente.

El entorno Virtual de Java no necesita que todas las clases sean cargadas en memoria al momento de iniciar la aplicación. De esta forma, el binding de las clases puede hacerse en tiempo de ejecución, asumiendo que tal información exista y sea accesible (como por ejemplo, mediante el modificador ?classpath al momento de iniciar la aplicación).

Supongamos que el diseño del programa obtendrá el nombre de la clase correspondiente en tiempo de ejecución. Para crear una nueva instancia de tal clase (por ejemplo, en una fábrica de objetos) necesitamos obtener la información necesaria de manera dinámica:

Tomando estos conceptos, podemos reducir el código de la clase inicial para registrar los eventos del usuario, pero esta vez, haciendo uso de la reflexión de Java:

De esta manera, primero se obtiene la propia clase y se manda a llamar a algún método que tenga el nombre de la acción. En este caso, los métodos se llaman uno, dos y tres. Para que esta técnica funcione, esta claro que las acciones deben de tener un método correspondiente, con el mismo nombre, puesto que se hace la búsqueda con la instrucción action.getActionCommand().




Subscribe to email feed



La fábrica de softw

La Fábrica de Software de la Dirección de Innovación y ...

Administradores de A

Durante años aplicación ES File Explorer era la mejor y ...

Apoyo del Conacyt a

El Consejo Nacional de Ciencia y Tecnología (Conacyt), como parte ...

Microsoft Surface St

Esta semana Microsoft anuncio la existencia de su nueva PC ...

Incuba tu proyecto c

¡Buscamos nuevas tecnologías! Si tu proyecto es seleccionado Telcel te otorgará ...

Las 10 funciones de

  Java 8 incluye nueva funcionalidad que nos permite tener un ...

Como usar una funci

Usar una función hash para encriptar una contraseña no es ...

Cómo escribir códi

Nunca supongas a la malicia lo que puede ser explicado ...

Las 114 preguntas de

¿Tienes una entrevista de trabajo en puerta para un posición Java? ...

Believe in technolog

Ziff Davis Publishing es la más grande editorial de contenidos ...