professor: hyggo almeida observer. o que vimos na última aula? decorator iterator 2 observer

16
Professor: Hyggo Almeida Observer Observer

Upload: internet

Post on 18-Apr-2015

109 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Professor: Hyggo Almeida Observer. O que vimos na última aula? Decorator Iterator 2 Observer

Professor: Hyggo Almeida

ObserverObserver

Page 2: Professor: Hyggo Almeida Observer. O que vimos na última aula? Decorator Iterator 2 Observer

O que vimos na última aulaO que vimos na última aula??

Decorator Iterator

2Observer

Page 3: Professor: Hyggo Almeida Observer. O que vimos na última aula? Decorator Iterator 2 Observer

O que veremos hojeO que veremos hoje??

Observer

3Observer

Page 4: Professor: Hyggo Almeida Observer. O que vimos na última aula? Decorator Iterator 2 Observer

ObserverObserver

Computação Ubíqua Casa inteligente Cenário não tão futurista Software embutido

4Observer

Page 5: Professor: Hyggo Almeida Observer. O que vimos na última aula? Decorator Iterator 2 Observer

ObserverObserver

Observer 5Minha Casa

Page 6: Professor: Hyggo Almeida Observer. O que vimos na última aula? Decorator Iterator 2 Observer

ObserverObserver

Como projetar???

6Observer

Telefone Microondas

ArCondicionado

Torradeira

Computador

Geladeira

Microondas mic;ArCondicionado arc;

Torradeira tor;Computador cp;Geladeira gel;

vaiChegar(30)

vaiChegar(30)vaiChegar(30)

vaiChegar(30)

vaiChegar(30)

Usuário vouChegar(30)

Televisão

Page 7: Professor: Hyggo Almeida Observer. O que vimos na última aula? Decorator Iterator 2 Observer

ObserverObserver

Problemas!!! Alto acoplamento Na verdade, o acoplamento deve ser mínimo Computador, Microondas, televisão... etc, estão

interessados apenas no EVENTO ocorrido no telefone

Querem ser notificados quando tal EVENTO ocorrer

7Observer

Page 8: Professor: Hyggo Almeida Observer. O que vimos na última aula? Decorator Iterator 2 Observer

ObserverObserver

Solução???Padrão ObserverDefinição de dois papéis

• Observador (Observer)• Ouvinte (Listener)

8Observer

Observer <<interface>>Listener

*

Avisa a todos os ouvintes interessados quando o Evento ocorre

Cadastra-se no observador como interessado em um Evento

Page 9: Professor: Hyggo Almeida Observer. O que vimos na última aula? Decorator Iterator 2 Observer

ObserverObserver

No nosso exemplo

9Observer

TelefoneObsevador <<interface>>EletroOuvinte

tocar();addListener(EletroOuvinte);

dispararEvento();

receiveEvent(EventoToque);

EventoToque

getTime();

cria

anuncia

Computador

ArCondicionado

Geladeira

Torradeira

Microondas

*

Page 10: Professor: Hyggo Almeida Observer. O que vimos na última aula? Decorator Iterator 2 Observer

ObserverObserver

Intençãodefinir uma dependência um-para-muitos entre

objetos, de maneira que quando um objeto muda de estado todos os seus dependentes são notificados e atualizados automaticamente.

Também conhecido como:Dependents e Publish-Subscribe

10Observer

Page 11: Professor: Hyggo Almeida Observer. O que vimos na última aula? Decorator Iterator 2 Observer

ObserverObserver

Aplicabilidadequando a mudança em um objeto exige a mudança

em outros, e você não sabe quantos objetos necessitam ser mudados.

quando um objeto deveria ser capaz de notificar outros objetos sem fazer hipóteses, ou usar informações, de quem são estes objetos.

11Observer

Page 12: Professor: Hyggo Almeida Observer. O que vimos na última aula? Decorator Iterator 2 Observer

ObserverObserver

Conseqüênciasbaixo acoplamento entre os anunciantes e os

ouvintes da notificaçãosuporte para comunicações baseadas em difusão

(broadcast)atualizações inesperadas

12Observer

Page 13: Professor: Hyggo Almeida Observer. O que vimos na última aula? Decorator Iterator 2 Observer

ObserverObserver

Implementem o exemplo de Oberver apresentado Apenas com Computador e MicroondasEstes dois terão apenas o método receiveEvent

exigido pela interfaceO método de Computador deve imprimir na tela:

• “Recebendo dados do trabalho”O método de Microondas deve imprimir na tela:

• “Esquentando o Frango!!!”

13Observer

Page 14: Professor: Hyggo Almeida Observer. O que vimos na última aula? Decorator Iterator 2 Observer

O que vimos hojeO que vimos hoje??

Observer

14Observer

Page 15: Professor: Hyggo Almeida Observer. O que vimos na última aula? Decorator Iterator 2 Observer

O que veremos na próxima aulaO que veremos na próxima aula??

Strategy Template Method

15Observer

Page 16: Professor: Hyggo Almeida Observer. O que vimos na última aula? Decorator Iterator 2 Observer

DúvidasDúvidas??

?16Observer