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