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