using System.Collections;
namespace Templates.Observer {
public class Subject {
// Subject instance variables
private ArrayList observers = new ArrayList();
public void Attach(Observer o){
observers.Add(o);
}
public void Detach(Observer o){
observers.Remove(o);
}
public void Notify(){
foreach(Observer o in observers) o.Update();
}
public SubjectState GetState(){
return new SubjectState();
}
}
public class SubjectState {
// Selected state of the subject
}
} | |
The subject class.
The list of observers.
A method that handles subscription.
A method that updates all
observers that subcribe to events
from this subject.
A method that may supply additional
information to an observer upon
request.
A sketch of the class SubjectState.
|