728x90
SMALL
🔹 옵저버 패턴이란?
옵저버 패턴은 발행자(Publisher, Subject)와 구독자(Subscriber, Observer) 간의 관계를 정의하는 패턴이다.
- 발행자(Subject): 특정 이벤트가 발생하면 이를 구독자(Observer) 에게 알림을 보낸다.
- 구독자(Observer): 발행자의 이벤트를 감지하고, 이에 따라 특정 로직을 실행한다.
- 객채 간의 일대다 의존 관계를 정의하여 어떤 객체의 상태가 변경될 때, 그 객체에 의존하는 다른 객체들이 자동으로 업데이트 되도록 하는 패턴이다.
- 주로 이벤트 처리 시스템 사용된다.
사용 예시 : 체력 변화 감지, UI 업데이트, 이벤트 시스템
✅ 장점
✔ 느슨한 결합: 서로 직접 참조하지 않고 독립적으로 동작 가능
✔ 확장성: 새로운 옵저버를 추가하는 것이 용이
✔ 이벤트 기반 프로그래밍: UI 업데이트, 상태 변화 감지 등에 적합
❌ 단점
✖ 구독 해제 관리 필요: 메모리 누수를 방지하기 위해 OnDisable() 등에서 이벤트 해제해야 함
✖ 디버깅 어려움: 이벤트가 어디에서 호출되고 있는지 추적하기 어려울 수 있음
✖ 퍼포먼스 이슈: 너무 많은 옵저버가 있을 경우 성능 저하 가능
쉬운 설명 그림
1. C# 이벤트와 델리게이트(delegate) 활용
결과
옵저버 패턴 동작 그림
2. C# 인터페이스를 활용한 옵저버 패턴
옵저버 인터페이스와, 발행자(Subject) 구현
알림을 받을 구독자들 구현
UI 매니저 | Audio 매니저 | Game 로그 |
![]() |
![]() |
![]() |
실행할 스크립트 구현
결과
728x90
'디자인 패턴 > 디자인 패턴' 카테고리의 다른 글
[디자인 패턴] - 오브젝트 풀링 (Object Pooling) 패턴 (0) | 2025.02.28 |
---|---|
[디자인 패턴] - 싱글톤 (Singleton) 패턴 (0) | 2025.02.21 |