Segundo a wikipedia:
O padrão obsever diz que um objeto (observado) mantem uma lista de outros objetos (observadores), e notifica aos observadores qualquer mudança que ocorro no observado.
O Java já traz uma implementação do observer padrão, e a utilizamos aqui onde trabalho pra implementar o MVC com Swing, e realmente achei uma abordagem muito interesse, e simples de ser feita.
é muito simples de se utilizar, e esse post vai ser pequeno sim :).
primeiramente na nossa classe observada temos que fazela extender a Obervable
e isso já a torna apta para ser observada por outra classe, as classes que vão observala devem implementar a interface Observer
que contem a assinatura de um único metodo update
, a cada notificação do modelo é chamado esse metodo update, ridiculamente simples e facil.
Vamos a um exemplo prático:
public class MeuObservado extends Observable{
public void hello(){
setChanged();
notifyObservers("Hello World!");
}
}
Agora quem vai observar essa classe
public class MeuObservador implements Observer{
public MeuObservador(){
MeuObservado obj = new MeuObservado();
obj.addObserver(this);
obj.hello();
}
public void update(Observer o, Object arg){
System.out.println(arg);
}
}
só executar e pronto, um hello world utilizando observer, se vc tiver mais classes que utilizem esse hello world basta adiciona-la ao observer, e ela será notificada também. simples, pratico e facil. Excelente maneira de proporcionar baixo acoplamento entre as classes.
Outra hora vou postar sobre como criar listener no Swing.
[]'s
3 comentários:
Oi colega posta um exemplo com swing ai do Observer.
Se vc puder e, se vc tem como mostrar, alguma coisa com MVC e swing + acesso a banco. Ta certo que SWING já eh MVC, mas implemtando uma aplicação swing com acesso a banco.
Otimos post
Não entendi nem compilou esse seu post. falta código ...
Qual foi o erro ou o problema no codigo?
Postar um comentário