Skip to content

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());
    }
}