// file: MyObserver.java // author: keller // purpose: Illustrating Observer pattern in Java, // using Java Observable and Observer base classes import java.util.Observable; import java.util.Observer; class Parameters { public static int numObservers = 5; } class MyObservable extends Observable { private int value = 0; public void setValue(int value) { this.value = value; setChanged(); notifyObservers("new value = " + value); } public int getValue() { return value; } } class MyObserver implements Observer { int index; MyObserver(int index) { this.index = index; } public void update(Observable observable, Object arg) { System.out.println("Observed by MyObserver " + index + ": " + arg); } public static void main(String arg[]) { MyObservable observable = new MyObservable(); for( int i = 0; i < Parameters.numObservers; i++ ) { observable.addObserver(new MyObserver(i)); } observable.setValue(1); observable.setValue(2); observable.setValue(3); } }