Outils pour utilisateurs

Outils du site


helloworld:design_pattern:observer:java

Ceci est une ancienne révision du document !


Les interfaces et classes abstraites sont déjà implémentées dans Java.

BeanObservable.java
package observer;
 
import java.util.Observable;
 
public class BeanObservable extends Observable {
  private int nb;
 
  public int getNb() {
    return nb;
  }
 
  public void setNb(int nb) {
    this.nb = nb;
    setChanged();
    // C'est notifyObservers qui appelle clearChanged();
    notifyObservers();
  }
}
Observateur.java
package observer;
 
import java.util.Observable;
import java.util.Observer;
 
public class Observateur implements Observer {
  @Override
  public void update(Observable o, Object arg) {
    System.out.println("Nouvelle valeur détectée : " + ((BeanObservable)o).getNb());
  }
}
Main.java
package observer;
 
public class Main {
  public static void main(String[] args) {
    // On crée l'observé et les deux observateurs
    BeanObservable bean = new BeanObservable();
    Observateur ob1 = new Observateur();
    Observateur ob2 = new Observateur();
 
    // On lit l'observé aux observateurs
    bean.addObserver(ob1);
    bean.addObserver(ob2);
 
    // On change une valeur pour générer l'événement
    bean.setNb(10);
  }
}
helloworld/design_pattern/observer/java.1480868740.txt.gz · Dernière modification : 2016/12/04 17:25 de root