Exemplo de observer

Páginas: 3 (576 palavras) Publicado: 18 de março de 2013
import java.util.Observable;
import java.util.Observer;
public class RevistaInformatica extends Observable {
private int edicao;
public void setNovaEdicao(int novaEdicao) {
this.edicao =novaEdicao;
setChanged();
notifyObservers();
}
public int getEdicao() {
return this.edicao;
}
public static void main(String[] args) {
//poderia receber a nova edicao atraves de um recurso externoint novaEdicao = 3;
RevistaInformatica revistaInformatica = new RevistaInformatica();
Assinante1 assinante1 = new Assinante1(revistaInformatica);
revistaInformatica.setNovaEdicao(novaEdicao);
}
}class Assinante1 implements Observer {
Observable revistaInformatica;
int edicaoNovaRevista;
public Assinante1(Observable revistaInformatica) {
this.revistaInformatica = revistaInformatica;revistaInformatica.addObserver(this);
}
@Override
public void update(Observable revistaInfSubject, Object arg1) {
if (revistaInfSubject instanceof RevistaInformatica) {
RevistaInformaticarevistaInformatica = (RevistaInformatica) revistaInfSubject;
edicaoNovaRevista = revistaInformatica.getEdicao();
System.out.println("Atenção, já chegou a mais uma edição da Revista Informatica. " +
"Esta é asua edição número: " + edicaoNovaRevista);
}
}
}

Acima temos a implementação do Padrão de Projeto Observer utilizando a API do Java. Nota -se que a
RevistaInformatica é o Subject que estáaguardando registros de cliente. Assinante1 é um assinante que se
registra na RevistaInformatica para receber notificações sempre que uma nova edição for publicada. Vale
ressaltar novamente quesetChanged() sempre deve ser chamado antes de notifyObservers() ou o estado
interno do objeto não será modificado e ao chamar diretamente notifyObserver() nada acontecerá, pois o
estado não foi alterado(este estado é guardado na API). Isso ocorre porque dentro de notifyObservers()
temos tipo uma condicional “if (setChanged())” para saber se o estado foi alterado.
Um detalhe a ser observado é que...
Ler documento completo

Por favor, assinar para o acesso.

Estes textos também podem ser interessantes

  • Observer DOC
  • PAdrão Observer
  • exemplo
  • Exemplo
  • Exemplo
  • Exemplo
  • Exemplo
  • Exemplo

Seja um membro do Trabalhos Feitos

CADASTRE-SE AGORA!