C# Спостерігач (Observer)

2075 / C# / Шаблони / Спостерігач (Observer)

 

 

interface IObservable
{
  void AddObserver(IObserver o);
  void RemoveObserver(IObserver o);
  void NotifyObservers();
}
class ConcreteObservable : IObservable
{
  private List<IObserver> observers;
  public ConcreteObservable()
  {
    observers = new List<IObserver>();
  }
  public void AddObserver(IObserver o)
  {
    observers.Add(o);
  }

  public void RemoveObserver(IObserver o)
  {
    observers.Remove(o);
  }

  public void NotifyObservers()
  {
    foreach (IObserver observer in observers)
      observer.Update();
  }
}

interface IObserver
{
  void Update();
}
class ConcreteObserver :IObserver
{
  public void Update()
  {
  }
}