Next: Los Actores
Up: Interacción
Previous: Interacción
Es común en todas las bibliotecas gráficas la existencia del llamado loop de eventos (event loop). La activación de este último implica que el programador desea detener el curso secuencial de la aplicación en ese punto, para transferir el control de las instrucciones al usuario.
En muchas aplicaciones la sucesión de operaciones está estáticamente establecida o está determinada por un conjunto información que puede asumirse completamente conocido al comienzo de la aplicación. Leer una imagen de disco, calcular su histograma y verlo en la pantalla es un ejemplo de este tipo de aplicaciones en las cuales se puede prescindir de cualquier interacción. El pseudocódigo correspondiente sería:
Imagen imagen = LeerImagen( "archivo" )
Histograma histograma = CalcularHistograma( imagen )
MostrarHistograma( histograma )
En otras aplicaciones estas hipótesis no son válidas.
En un caso sencillo supongamos que en el sistema de control de pagos de una empresa existen tres funciones: void credito(char * nombre, int monto), void pago(char * nombre, int monto) y void reporte() cuyas acciones modifican el estado de este de la siguiente forma:
- credito. Agrega en la base de datos de la empresa, un registro indicado que el cliente nombre a contraído una deuda por valor monto si es la primera vez que este cliente compra a crédito en la empresa, o suma el monto nuevo al previamente adeudado si ya existía un registro de crédito para este cliente en la base de la empresa.
- pago. Descuenta del registro correspondiente al cliente nombre la cantidad monto.
- reporte. Genera un listado impreso de lo adeudado por cada cliente.
Como es evidente que la información en este caso no es conocida al momento de desarrollar el programa, un mecanismo para ingresar la misma mientras la aplicación esté activa es necesario. Es en este punto donde entra el loop de eventos que es el responsable de detectar que el usuario a elegido cierto componente (generalmente gráfico) que está asociado a alguna acción (una función). En este caso el control es transferido a la función mientras esta se ejecuta para volver una vez esta finalice al event loop como puede verse en forma esquemática en Fig.3. La ausencia del esquema secuencial clásico puede redundar en programas complejos y son necesarios mecanismos de alto nivel para facilitar la programación.
Next: Los Actores
Up: Interacción
Previous: Interacción
Claudio Risso
2001-06-02