Monday, November 27, 2006

Behavioral -- Observer


--- Observer.java ---
package behavioral.observer;

public interface Observer {

void update();

}

--- ConcreteObserver.java ---
package behavioral.observer;

public class ConcreteObserver implements Observer {

public void update() {

}

}

--- Subject.java ---
package behavioral.observer;

public interface Subject {

void attach(Observer observer);

void detach(Observer observer);

void inform();

}

--- ConcreteSubject.java ---
package behavioral.observer;

import java.util.Vector;
import java.util.Enumeration;

public class ConcreteSubject implements Subject {

private Vector observersVector = new Vector();

public void attach(Observer observer) {
observersVector.addElement(observer);
}

public void detach(Observer observer) {
observersVector.removeElement(observer);
}

public void inform() {
Enumeration enumeration = observers();
while (enumeration.hasMoreElements()) {
((Observer) enumeration.nextElement()).update();
}
}

public Enumeration observers() {
return ((Vector) observersVector.clone()).elements();
}

}

0 Comments:

Post a Comment

<< Home