Programação orientada a eventos é um paradigma de programação. Diferente de programas tradicionais que seguem um fluxo de controle padronizado, o controle de fluxo de programas orientados a evento são guiados por indicações externas, chamadas eventos. Sua aplicação é grande no desenvolvimento de sistemas de interface com o usuário.
A maioria das ferramentas e arquiteturas de desenvolvimento de GUI existentes depende de programação orientada a eventos. A estrutura Java AWT processa todas as alterações na interface do usuário em um único thread, chamado de thread de despacho de eventos . Da mesma forma, todas as atualizações da interface do usuário na estrutura Java JavaFX ocorrem no JavaFX Application Thread.
Além disso, sistemas como o Node.js também são controlados por eventos.Node.js & Event-driven programming .
Visão geral Diferente de aguardar por um comando completo que processa a informação, o sistema em tal paradigma é programado em sua base em um laço de repetição de eventos, que recebem repetidamente informação para processar e disparam uma função de resposta de acordo com o evento.
O método pelo qual a informação é adquirida por camadas mais baixas do sistema é irrelevante. As entradas podem ser enfileiradas ou uma interrupção pode ser registrada para reagir, ou ainda ambos.
Programas orientados a evento geralmente consistem em vários pequenos tratadores, programas que processam os eventos para produzir respostas, e um disparador, que invoca os pequenos tratadores. Uma alternativa consiste em disparar os tratadores por eles próprios, criando um efeito de evento em cascata.
Esse método é bastante flexível e permite um sistema assíncrono. Programas com interface com o usuário geralmente utilizam tal paradigma. Sistemas operacionais também são outro exemplo de programas que utilizam programação orientada a eventos, este em dois níveis. No nível mais baixo encontram-se o tratamento de interrupções como tratadores de eventos de hardware, com a CPU realizando o papel de disparador. No nível mais alto encontram-se os processos sendo disparados novamente pelo sistema operacional.
Um interpretador de comandos pode ser visto como um caso especial de modelo orientado a eventos, no qual o sistema, até então inativo, espera um comando para ser disparado através das instruções do usuário.
Grant Palmer: Java Event Handling, Prentice Hall, ISBN 0-13-041802-1 David Luckham: The Power of Events - An Introduction to Complex Event Processing in Distributed Enterprise Systems, Addison-Wesley, ISBN 0-201-72789-7 George S. Fishman: Discrete-Event Simulation - Modeling, Programming, and Analysis, Springer, ISBN 0-387-95160-1 Bertrand Meyer (2004): The power of abstraction, reuse and simplicity: an object-oriented library for event-driven design, in Festschrift in Honor of Ole-Johan Dahl, eds. Olaf Owe et al., Springer-Verlag, Lecture Notes in Computer Science 2635, also available online. Miro Samek: Practical Statecharts in C/C++: Quantum Programming for Embedded Systems, CMP Books, ISBN 1-57820-
Ligações externas Tutorial "Programação orientada a evento: Introdução, Tutorial, História" por Stephen Ferg Artigo "O estilo de programação orientada a evento" por Chris McDonald Artigo "Programação orientada a evento usando Especialização de Template" por Christopher Diggins
Categoria:Paradigmas de programação