Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouAlana Portela Alterado mais de 10 anos atrás
1
Observer Mantendo seus objetos atualizados Daniel Roloff Carlos Machado Enzo Zuccolotto Luiz Felipe Trevisan Rafael Holtz
2
Imagine… Uma editora começa a publicar jornais; Você assina-o e todo dia recebe os mesmos; Você cancela a assinatura quando não quizer mais recebê-los e eles param de chegar; A editora entrega jornais para pessoas, hotéis, companhias aéreas e outras empresas fazem e cancelam assinaturas constantemente. ESTE É O OBSERVER!
3
Definições Define a dependência um-para-muitos entre objetos para que quando um objeto mude de estado todos os seus dependentes sejam avisados e atualizados automaticamente. Utilizando baixo encapsulamento!
4
Definições Padrão Comportamental, isto é, define o comportamento dos objetos. Não permite que a estrutura interna do obejto que está se comunicando seja exposta. Swing utiliza muito este padrão, assim como muitos frameworks GUI. Também será encontrado em outros lugares como JavaBeans e RMI.
5
Diagrama de Classes Contêm o estado e o controla O método update é chamado quando o estado de Subject é alterado
6
Java Java tem uma implementação própria; É necessário estender a superclasse java.util.Observable (Péssimo!) Possui um método setChanged() utilizado para informar que deve ser enviado o estado para as demais classes. Útil para quando o estado varia muito e queremos acionar os observadores só em determinados casos.
7
Exemplo Vamos ao código! Try it!
8
Desvantagens A necessidade de extender uma classe na implementação default do Java Não é possível nem usar composição já que o método setChanged é privado Deve-se otimizar as notificações para que não sobrecarregar os observadores
9
Bibliografia Padrões de Projeto – Use a Cabeça – Eric Freeman e Elisabeth Freeman Spring Loaded Observer Pattern – Scott Priolo http://www.theserverside.com/tt/articles/article. tss?l=SpringLoadedObserverPattern
10
Dúvidas? Dúvidas?
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.