The Observer Interface in java

To observe an observable object, you must implement the Observer interface. This interface defines only the one method shown here:

void update(Observable observOb, Object arg)

Here, observOb is the object being observed, and arg is the value passed by notifyObservers( ). The update( ) method is called when a change in the observed object takes place

Demonstrate the Observable class and the Observer interface

import java.util.*;

//This is the observing class. class Watcher implements Observer {

public void update(Observable obj, Object arg) { System.out.println("update() called, count is " +

((Integer)arg).intValue());

}

}

/This is the class being observed. class BeingWatched extends Observable {

void counter(int period) { for( ; period >=0; period--) {

setChanged();

notifyObservers(new Integer(period)); try {

Thread.sleep(100);

}catch(InterruptedException e) {

System.out.println("Sleep interrupted");

}

}

}

}

class ObserverDemo {

public static void main(String args[]) { BeingWatched observed = new BeingWatched(); Watcher observing = new Watcher();

/* Add the observing to the list of observers for observed object. */

observed.addObserver(observing);

observed.counter(10);

}

}

The output from this program is shown here:

update() called, count is 10 update() called, count is 9 update() called, count is 8 update() called, count is 7 update() called, count is 6 update() called, count is 5 update() called, count is 4 update() called, count is 3 update() called, count is 2 update() called, count is 1 update() called, count is 0

Leave a Comment