Buscar

Aula 30 - Observer

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Modelagem de 
Padrões de Projeto
Aula 30 - Observer
Observer
(aka Observador, Assinante do evento, Event-Subscriber, Escutador ou Listener)
Criacionais
Ilustrações: SHVETS (2022)
Prototype
Abstract 
Factory
Builder
Factory 
Method
Singleton
Command
Comportamentais
Chain of 
Responsibility
Memento
Observer
Visitor
Template 
Method
Iterator
State
Strategy
Mediator
✓
✓
✓
✓
✓
✓
✓
Estruturais
Adapter
Flyweight
Bridge
FacadeDecorator
Composite
Proxy
✓ ✓
✓
✓
✓✓
✓
✓
✓
● É um padrão de projeto desenhado para evitar que objetos dentro de uma 
aplicação executem espera ativa (em loop) esperando determinado 
evento acontecer.
● Ao invés, define um mecanismo de assinatura em que uma classe 
publicadora avisa seus assinantes quando algum evento de interesse 
acontece.
Imagem de kjpargeter no Freepik
Definição
Imagem de kjpargeter no Freepik
Exemplo - feed de notícias
Imagem de kjpargeter no Freepik
Estrutura: Observer
A classe Publicadora 
manda eventos de 
interesse para outros 
objetos. Esses eventos 
ocorrem quando a 
publicadora muda seu 
estado ou executa algum 
comportamento. As 
publicadoras contêm 
uma infraestrutura de 
inscrição que permite 
novos assinantes se juntar 
aos atuais assinantes ou 
deixar a lista.
Fonte: SHVETS (2022)
Imagem de kjpargeter no Freepik
Estrutura: Observer
Quando um novo evento 
acontece, a publicadora 
percorre a lista de 
assinantes e chama o 
método de notificação 
declarado na interface do 
assinante em cada objeto 
assinante.
Fonte: SHVETS (2022)
Imagem de kjpargeter no Freepik
Estrutura: Observer
A interface Assinante declara 
a interface de notificação. Na 
maioria dos casos ela consiste 
de um único método 
atualizar() . O método 
pode ter vários parâmetros 
que permite que a publicadora 
passe alguns detalhes do 
evento junto com a 
atualização.
Fonte: SHVETS (2022)
Imagem de kjpargeter no Freepik
Estrutura: Observer
Geralmente, assinantes 
precisam de alguma 
informação contextual para 
lidar com a atualização 
corretamente. Por esse motivo, 
as publicadoras quase sempre 
passam algum dado de 
contexto como argumentos do 
método de notificação. A 
publicadora pode passar a si 
mesmo como um argumento, 
permitindo que o assinante 
recupere quaisquer dados 
diretamente.
Fonte: SHVETS (2022)
Im
ag
em
 d
e 
 F
re
ep
ik
Es
tu
do
 d
e 
ca
so
✓ Aberto/fechado: Novas classes 
assinantes podem ser criadas 
sem depender de mudanças nos 
assinantes já implementados.
✓ Possibilita a criação de relações 
entre objetos em tempo de 
execução.
Im
ag
em
 d
e 
p
ik
is
u
p
er
st
ar
 n
o
 F
re
ep
ik
Vantagens de utilizar Observer
✖ Notificação dos assinantes 
aleatoriamente.
Atividade 38
Modele em UML o padrão observer que implementa uma classe 
MaintenancePublisher que avisa instâncias de Mechanic (assinante) sobre 
manutenções de aeronaves.
Os tipos de notificações serão EmailMechanic e SMSMechanic que serão 
ativadas conforme a importância da manutenção pendente.
D
úv
id
as
?
Referências SHVETS, Alexander. Mergulho nos Padrões de Projeto. Edição 2023-1.24. Kyiv: Refactoring.guru. 2022.

Outros materiais