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

Post on 18-Apr-2015

110 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Professor: Hyggo Almeida

ObserverObserver

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

Decorator Iterator

2Observer

O que veremos hojeO que veremos hoje??

Observer

3Observer

ObserverObserver

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

4Observer

ObserverObserver

Observer 5Minha Casa

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

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

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

ObserverObserver

No nosso exemplo

9Observer

TelefoneObsevador <<interface>>EletroOuvinte

tocar();addListener(EletroOuvinte);

dispararEvento();

receiveEvent(EventoToque);

EventoToque

getTime();

cria

anuncia

Computador

ArCondicionado

Geladeira

Torradeira

Microondas

*

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

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

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

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

O que vimos hojeO que vimos hoje??

Observer

14Observer

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

Strategy Template Method

15Observer

DúvidasDúvidas??

?16Observer

top related