Escolar Documentos
Profissional Documentos
Cultura Documentos
Alunos
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