Aviso quando um valor do objeto foi alterado

2 respostas
Hempx

:arrow: Existi issso???

Ex: eu tenho uma classe
public class Dado{
   private int id;

   ...
   ...
   /*Construtor, metados get e set... */
}

:arrow: Eu queria saber se tem como "tipo gerar um evento" ou alguma notificação quando o objeto fosse alterado.

public class Principal {
   Dado dado; // Objeto que eu queria que me notificasse          
                      //que fosse alterado

   public Principal(){
      dado = new Dado();
   }

   public void setDado( Dado dado ) {
      this.dado = dado;
      /* tem como ter alguma notificação quando eu faço alguma alteracao
como essa ae em cima ou tbm se tivesse feito dado.setId( 10 ); por exemplo*/
   }
}

2 Respostas

danieldestro

Use o pattern Subscriber/Observer

vc mesmo pode implementar isso na sua classe.

public class SuaClasse {

  public Vector listeners = new Vector();

  private String valor;

  public void addListener( SeuListener l ) {
    listeners.add( l );
  }

  public void setValor( String v ) {
    valor = v;
    notificarListener();
  }

  private void notificarListener() {
    Iterator it = listeners.iterator();
    while( i.hasNext() ) {
      //metodo fazerAlgo pode ser definido na Interface SeuListener
      ((SeuListener) it.next()).fazerAlgo();
    }
  }
}
TedLoprao

Vc pode utilizar o pattern Observer!!! ou então usar o esquema de eventos do java… Já houve um post sobre esse assunto aqui, se eu achar eu posto aqui!!

Fallow

Criado 16 de dezembro de 2003
Ultima resposta 16 de dez. de 2003
Respostas 2
Participantes 3