https://refactoring.guru/design-patterns/observer
Observer로 등록된 모든 객체들에게 관련 메시지를 notify 한다.
각 observer 들은 해당 메시지를 각기 관심에 맞게 처리한다.
예제
- Level Up event를 기다리는 각종 hander 들.
- Game Loading End 를 기다리는 각종 hander 들.
- 기타 모든 특정 이벤트에 대해 사용 가능.
예제 코드
더보기
public interface IObserver
{
void Update(string message);
}
public class LevelUpDialog : IObserver
{
public void Update(string msg)
{
Console.WriteLine(msg);
}
}
public class LevelUpManager
{
List<IObserver> _observers = new List<IObserver>();
public void AddObserver(IObserver observer)
{
_observers.Add(observer);
}
public void RemoveObserver(IObserver observer)
{
_observers.Remove(observer);
}
public void LevelUp()
{
Console.WriteLine("Level Up !");
for(int q = 0; q < _observers.Count; q++)
{
_observers[q].Update("level up");
}
}
}
internal class ObserverDemo
{
public void Run()
{
}
}
'Work & Programming > System Design' 카테고리의 다른 글
[Behavioral Pattern] - Strategy (0) | 2024.05.16 |
---|---|
[Behavioral Pattern] - State (0) | 2024.05.16 |
[Behavioral Pattern] - Memento (0) | 2024.05.16 |
[Behavioral Pattern] - Command (0) | 2024.05.16 |
[Behavioral Pattern] - Chain Of Responsibility (0) | 2024.05.16 |