Observer Pattern
Det er når en ændring i et objekt, skaber behov for en anden ændring/handling i et andet objekt. Det observere ændringer.
Observers abonnerer på et Subject
Eksempel:
c#
internal interface IObserver
{
void Update();
}
public class Observer : IObserver
{
public void Update()
{
Console.WriteLine("Update was called on observer");
}
}c#
internal interface ISubject
{
void Attach(IObserver observer);
void Detach(IObserver observer);
void Notify();
}
public class Subject : ISubject
{
private List<Observer> observers = new List<Observer>();
public void Attach(Observer o)
{
observers.Add(o);
}
public void Detach(Observer o)
{
observers.Remove(o);
}
public void Notify()
{
observers.ForEach(o => o.Update());
}
}