Você está na página 1de 4

Disciplina: Paradigmas de Programação

Nome: João Victor Francelino

Atividade

Pesquise e faça leituras relacionadas aos paradigmas Orientado a Eventos e


Orientado a Aspectos.

A partir destas leituras elabore um pequeno resumo com as características


principais e exemplos de linguagens que se encaixam neste paradigma. Inclua
imagens, diagramas ou figuras que melhor possam lhe auxiliar na compreensão
destes dois paradigmas.

Paradigma Orientado a Eventos


A programação orientada a eventos é um paradigma de programação que não
segue um fluxo de controle padronizado, sendo que seus fluxos de controles são
guiados por sinais externos. Por tanto sua aplicação está diretamente ligada com
o desenvolvimento de interfaces voltada para o usuário.
O princípio usado neste paradigma é o de: “Não nos telefone, nós telefonaremos
para você.” O objetivo é tentar trabalhar em um modelo não bloqueante. O motor
de eventos, possui uma fila para o armazenamento dos eventos que chegam e
também para o consumo onde ao invocar o método start() é aberta uma thread
que fica infinitamente consumindo a fila. O evento contém um tipo, que nesta
implementação usamos para identificar qual implementação de listener irá
processá-lo. Call-back recebe um argumento e deve processá-lo, nesta
implementação definimos o conteúdo dos call-backs no RegisterClientListener e o
seu comportamento no main, durante o momento da criação do evento. Event
Listener, usado para realizar o polimorfismo no algoritmo do motor, assim nós
podemos processar qualquer evento, desde que esteja mapeado. Registro de
Clientes Listener, implementa a ação do evento. Se houvessem novos eventos
iriamos utilizar a interface Event Listener e implementar um comportamento para
este novo evento. Por fim temos a classe Main, onde iniciamos o motor de evento
e cadastramos um tipo de evento.
Na imagem podemos observar a Rede de processamento de Eventos, onde
produtores, por meio de canais, chegam a um intermediário, o que por meio de
um outro canal, consegue chegar aos consumidores. Nota-se que os produtores
possuem trocas com o ambiente.
Você pode programar orientado a eventos em qualquer linguagem. Basta escrever
um monitor de eventos que avise o código interessado nos eventos que ele está
monitorando. Há algumas linguagens que facilitam bastante a programação
orientada a eventos: C#, Visual Basic, Delphi.

Paradigma Orientado a Aspectos


O paradigma orientado a aspectos é um paradigma baseado em meta
informações. Primeiramente devemos saber que meta informação é,
resumidamente, uma “informação de uma informação”.
Join points, são os pontos que possuem algum aspecto associado. São os
métodos da aplicação que necessitam da execução de algum aspecto. Point cuts,
são expressões que identificam os join points, onde podemos usar namespaces,
classes e expressões regulares para identificar os join points. Advices, são
fragmentos de código que contêm o comportamento de um aspecto. Existem
alguns tipos como Before, After e outros, onde cada um define em que momento
da execução do join point, o comportamento do aspecto deverá ocorrer.
Como esse paradigma geralmente envolve conceitos que independem da camada
e não tem relação direta com os requisitos funcionais de um sistema, temos alguns
benefícios como a reutilização, clareza e desacoplamento do código.
A programação orientada a aspectos também possibilita fazer a devida separação
de responsabilidades, considerando funcionalidades que são essenciais para um
grupo de objetos, mas não são de responsabilidade direta deles.
O objetivo primário de uma linguagem orientada a aspectos é a separação de
interesses. aplicação é escrita em uma linguagem que melhor satisfaz suas
necessidades e as do desenvolvedor. Essa pode ser Java, C++, Visual Basic,
etc; em todas elas, o compilador converte o código-fonte
Fontes
Programação Orientada a Eventos: entenda o que é | Zup
O que é AOP - Programação Orientada a Aspectos? | Blog TreinaWeb
Paradigmas orientados a eventos - 1843 Palavras | Trabalhosfeitos
https://miro.medium.com/max/601/0*_7le9jNOJIGbU7Qx.png

https://th.bing.com/th/id/OIP.SoiGYzBSbhxwmEGne-
rhNQHaDJ?pid=ImgDet&rs=1

Você também pode gostar