programacion

Páginas: 7 (1630 palabras) Publicado: 29 de octubre de 2013
Programación Orientada a
Eventos
Técnicas de Programación
Santiago Pavón
V:2012.03.13

Programas Secuénciales
! El flujo de ejecución del programa sigue la
secuencia de sentencias que lo forman.
! El estado del programa:

definido por el punto del programa en el que
estamos ejecutando.
n  (Más los datos)
n 

Sistemas Dirigidos por Eventos
! Programas que atienden a sucesos(eventos) que
ocurren, y dependiendo de cuales sean, se
ejecutan diferentes funciones.
n 

Ejemplo: aplicación con una interface gráfica.

! No existe un único flujo de ejecución.
! ¿Como se programa?
n 

n 

Se especifican los eventos a los que debe responder el
programa.
Se especifican las acciones a realizar cuando ocurren
los eventos.

! Funcionamiento asíncrono.

Tiposde Eventos
! Externos: Producidos por el usuario.
Ejemplos: pulsaciones de teclado o ratón.

! Internos: Producidos por el sistema o la
aplicación.

Ejemplos:
n  vencimiento de un temporizador.
n  datos en líneas de comunicaciones.

Estado del Programa Dirigido por
Eventos
! Más difícil de conocer que en un sistema
secuencial.
n 
n 

n 
n 

n 

n 
n 

Suelen serMultihilo
Existen varios módulos ejecutándose a velocidades
relativas diferentes.
Los eventos internos ocurren en cualquier momento.
El usuario decide que módulos ejecuta, cuando, y
cuantas veces.
Pueden existir módulos que no se ejecuten nunca, o que
se ejecuten varias instancias simultáneamente.
Existen datos compartidos entre todos los módulos.
etc…

¿Qué soporte se necesita?
!Elementos que monitoricen cuando se

producen los eventos, los capturen, y los
metan en una cola.
! Un planificador o distribuidor que saque un
evento de la cola y se lo pase al módulo
que debe reaccionar ante él.

Marcos de Aplicación
! Conjunto de librerías que facilitan la tarea de
desarrollar cierto tipo de aplicaciones:
n 
n 
n 
n 

Proporcionan soporte en tiempo deejecución.
Manejo de la entrada por ratón y teclado.
Gestión de sistemas de ventanas.
Etc.

! La disponibilidad de un marco de aplicación para
realizar sistemas dirigidos por eventos simplifica
su desarrollo.

Desarrollo de GUI
! Aplicaciones con una Interface Gráfica de Usuario
son casos típicos de Sistemas Dirigidos por
Eventos.
! Los marcos de aplicación para el desarrollo GUI
suelenproporcionar:
n 

n 

Componentes MVC:
w  Vistas: interface de la aplicación (parte visible o
ventanas) que pinta los datos del modelo.
w  Controles: manejan las entradas del usuario y
actúan sobre los modelos.
w  Modelos: contienen los datos, los manipulan según
solicitan los controles, y actualizan las vistas.
Control y gestión de los eventos

Soporte en Java
! Java proporcionaun marco de aplicación

que facilita el manejo de eventos y la
creación de GUI.
! Proporciona numerosas clases que
utilizarán los programas que
desarrollaremos, adaptándolas previamente
mediante herencia y redefinición de
métodos.

Modelo de eventos
Generador de Eventos
XXXEvent

Escuchador Eventos
XXXEvent
implements XXXListener

addXXXListener(XXXListener)removeXXXListener(XXXListener)

Escuchador Eventos
XXXEvent
implements XXXListener

Java 1.1 y siguientes

El GUI y el Main Thread
! Para que el GUI responda con agilidad los
eventos deben atenderse rápidamente.

Los listeners (manejadores de eventos) deben
ejecutar poco código.
n  Crear Thread para realizar tareas largas.
n 

! Muy Importante:
Al GUI sólo debe accederse desde el Main
Thread(event dispatch thread).
Los modelos (MVC) son zonas críticas.

javax.swing.SwingUtilities
public static void invokeAndWait(Runnable doRun)
throws InterruptedException,
InvocationTargetException
public static void invokeLater(Runnable doRun)

Concurrencia: Hebras

Hebras en Java
! Hebras o hilos (threads): Unidades de
ejecución concurrente dentro de un programa
n 

Son objetos...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programación
  • Programacion
  • Programacion
  • Programación
  • Programacion
  • Programacion
  • Programacion
  • Programacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS