Programación Orientada a Objetos – Eventos (I)

Este post es parte de una serie de artículos sobre POO y viene a continuación de Cómo Escribir Una Clase

Nota: Este post está dedicado al autor de cierto curso fracasado de Ruby on Rails, nuestro estimado Auyama, el Hideki pervertido U_U

Bien, en el post anterior habíamos visto como se estructura una clase, dejando el tema de los eventos para un post aparte. La razón de esto es que el asunto de los eventos requiere una atención especial.

Los eventos son el medio como interactúa una clase con otras o con el propio usuario, se encargan de avisar que algo ha ocurrido y de manejarlo de una forma o de otra. Cada vez que escribimos con nuestro teclado, que hacemos click en un botón o un link, que cambiamos el tamaño de un objeto, estamos generando eventos. Es por ello que, cuando programamos, debemos tener en cuenta la posibilidad (no siempre necesaria, pero lo será a medida que generemos clases cada vez más complejas), tanto de manejar eventos que sólo implican a nuestra clase como de generar nuestros propios eventos, de modo que los usuarios de nuestras clases (en principio nosotros mismos) puedan decidir cómo reaccionará su código ante ellos.
El modo de manejar los eventos en P.O.O. se conoce como emisor/receptor, también llamado despachador/escuchador o simplemente dispatcher/listener.
En esta dupla, la primera parte (el emisor) se encargará de lanzar el evento, mientras la segunda se encargará de recibirlo y gestionarlo como sea necesario. La primera parte será responsabilidad nuestra (los programadores de la clase) y la segunda es responsabilidad de quien utiliza la clase (en principio, también nosotros).
Cada lenguaje tiene su propio manejador de eventos, que es el que nos permite, tanto lanzar los eventos como crear los receptores (escuchadores/listeners) que nos permitirán manejarlos. Realmente es una aplicación del patrón Observer, del que hablaremos más adelante, cuando hablemos de patrones, pero que necesariamente tocaremos en este post.

¿En qué consiste la emisión/recepción de eventos?

Básicamente, de lo que se trata es de avisar (en principio sin importar si alguien escucha o no) de algún cambio en el estado de la instancia, que puede ser un click en el objeto, el final de un proceso de carga o la terminación de algún complejo proceso. Cada vez que el evento en cuestión ocurre, la instancia dirá “¡¡Hey, me ocurrió este evento!!”. Esto es lo que conocemos como broadcasting.
Aquí es donde entra en juego el (los) receptor(es). Éste se encargará de estar atento, de escuchar (de ahí que se les llame listeners) el(los) evento(s) que ocurra en el emisor, y responderá adecuadamente.

Modelo Emisor/Receptor

Para ejecutar esto correctamente, es necesario disponer de una clase que se encargue del manejo de los eventos, tanto de la emisión como de la recepción de los mismos, un eventHandler; ésta puede ser dada por el mismo lenguaje (por ejemplo, el eventDispatcher en AS) o creada por el propio programador. Veamos un ejemplo de uso en AS2:

Technorati Tags: , ,

Acerca de The Fricky!
Web Developer, Internet Jedi, amante de los estándares y de aprender algo nuevo cada día

7 Responses to Programación Orientada a Objetos – Eventos (I)

  1. kyron dice:

    A penas termine con el final de C++ quiero volver a ActionScript y hacer unos buenos buenos eventos, que es en el único lenguaje que sé (sabía, mejor dicho) hacerlos.

    Tendré que volver a estudiar mis viejos apuntes.

    Me vino bien el artículo para refrescar la memoria.

  2. Pingback: Programación Orientada a Objetos – Eventos (I) | mawape sistemas desarrollo web, RIA´s, aplicaciones moviles

  3. Pingback: Ejemplo de Eventos | mawape sistemas desarrollo web, RIA´s, aplicaciones moviles

  4. Pingback: Programación Orientada a Objetos – Eventos | MAWAPE Sistermas, software, flash, flex, air, ria, flas lite, android, iphone, nokia, windows, mac, apple, webos, symbian, windows mobile, tutoriales, videos, realidad aumentada, software developed, RIA

  5. Pingback: Ejemplo de Eventos | MAWAPE Sistermas, software, flash, flex, air, ria, flas lite, android, iphone, nokia, windows, mac, apple, webos, symbian, windows mobile, tutoriales, videos, realidad aumentada, software developed, RIA

  6. Pingback: Ejemplo de Eventos « MAWAPE Sistemas

  7. Pingback: Programación Orientada a Objetos – Eventos « MAWAPE Sistemas

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.