npublic class Observable extends Object {
n Collection<Observer>
observers;
n public void addObserver(Observer
o);
n public void
deleteObserver(Observer o);
n public
boolean hasChanged();
n public void notifyObservers();
n public void notifyObservers(Object arg);
n …
n}
n
npublic
abstract interface Observer {
n public abstract void
update(Observable o, Object arg);
n}
n
npublic class Subject extends Observable{
n public void setState(String filename);
n public string getState();
n}