Observer

Observer 개요

상태의 변화를 감시하는 Observer가 상태가 변화하는 Observable의 변화를 감지한다. 1:다 관계에서 의존성을 줄이는 방법 중 하나다. C#은 delegate를 통해 구현할 수도 있다.

코드

public interface IObserver
{
    void Notify();
}

public class Observable
{
    List<IObserver> observers = new();

    public void AddObserver(IObserver observer) => observers.Add(observer);
    public void RemoveObserver(IObserver observer) => observers.Remove(observer);

    public void SomethingChanged()
    {
        for(var observer : observers)
        {
            observer.Notify();
        }
    }
}