Você está na página 1de 18

OBSERVER

INSTITUTO FEDERAL DA BAHIA

Alunos

Maria Catarina Mendona Silvino Alves

ndice

O Observer; Inteno; Motivao; Aplicabilidade; Estrutura; Implementao; Vantagens do uso (Benefcios); Desvantagens do uso (Consequncias);

Observer

Padro comportamental GoF(Gang of Four); Tambm conhecido como: Publisher-Subscriber, Event Generator, Dependents; possvel fazer uma analogia a um assinatura de um servio, por exemplo um servio de noticias em que os assinantes so notificados sempre que h uma nova notcia. Eles podem ainda assinar ou cancelar a assinatura a qualquer momento.

Inteno

"Definir uma dependncia um-para-muitos entre objetos para que quando um objeto mudar de estado, todos os seus dependentes sejam notificados e atualizados automaticamente." [GoF]; O padro Observer permite que objetos interessados sejam avisados da mudana de estado ou de outros eventos ocorrendo num outro objeto;

Motivao

Um objeto que possua agregaes deve permitir que seus elementos sejam acessados sem que a sua estrutura interna seja exposta. De uma maneira geral pode-se desejar que estes elementos sejam percorridos em vrias ordens. Como garantir que objetos que dependem de outro objeto percebam as mudanas naquele objeto? Os observadores (observer) devem conhecer o objeto de interesse. O objeto ou assunto de interesse (subject) deve notificar os observadores quando for atualizado.

Motivao

Aplicabilidade

Use o padro Observer para: manter dois ou mais aspectos interdependentes de uma abstrao, ao mesmo tempo permitindo que sejam reutilizados independentemente. mudar um objeto causando mudanas em outros objetos, sendo que no se sabe a priori quantos objetos precisam ser mudados. fazer um objeto notificar outros objetos de que seu estado mudou, sem assumir nada sobre os outros objetos.

Estrutura

Estrutura

Participantes deste padro: Subject: Fornece uma interface para remover e adicionar Observadores; Observer: Uma interface de atualizao para objetos que devem ser notificados sobre mudanas no Subject; ConcreteSubject: Envia uma notificao para os observadores quando seu estado muda; ConcreteObserver: Implementa a interface de atualizao do Observer;

Implementao

K19 Problema: Como desenvolver um aplicao para o mercado financeiro que mantenha os interessados num determinado valor de uma ao informados sobre o valor da mesma, sendo que toda vez que esta ao tem o seu valor alterado todos os interessados so notificados.

Implementao

K19

Implementao

Um determinado Portal da internet que manter informados seus assinantes sobre a postagem de novas notcias no portal. Eles pensaram em desenvolver uma newsletter, mas como implement-la de forma padronizada para que todos sejam notificados e que possam cancelar o servio a qualquer momento.

Implementao

Vantagens do uso

A vantagem encontrada neste padro que tanto os observadores quanto os sujeitos (observados) podem ser reutilizados. Com isso, possvel aumentar o nmero de observadores sem precisar modificar a classe observada. O observador pode ser implementado de forma que, quando receber uma notificao de mudana de estado do objeto observado, ele tenha autonomia em consider-la ou ignor-la.

Desvantagens do uso

A desvantagem que usar este padro de forma indiscriminada pode causar srio impacto na performance do sistema. Quando todos notificam todos a cada mudana, o sistema acaba ficando inundado de requisies, o que poder levar a um desempenho mais lento.

Referncias

https://pt.wikipedia.org/wiki/Observer http://www.dsc.ufcg.edu.br/~jacques/cursos/map/htm l/arqu/observer.htm http://blog.rafaelcapucho.com/java/padroes-deprojeto-observer-modelagem-uml.html K19 Treinamentos Design Patterns em Java GAMMA, Erich et al. Padres de Projeto: Solues reutilizveis de software orientado a objetos. http://www.noginfo.com.br/arquivos/CC_TEC_08.pdf

Obrigado a Todos!!! Fim

Você também pode gostar