기타/디자인패턴
[디자인 패턴]Observe
Krapboss
2024. 5. 21. 20:39
[출처]https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns
어떠한 주체(Subject)의 상태가 변경될 때 그것을 다른 관찰자(Observer)에게 알리는 것
"일대 다" 의 느슨한 결합 상태
ButtonSubject | 각 Observer에게서 Action을 통한 이벤트를 저장받는다. 버튼이 클릭된다면, 지정된 이벤트를 실행한다. |
ParticleSystemObserver | 게임 시작 시 Subject의 Action에 자신들의 함수를 저장한다 저장된 메서드는 자신의 오브젝트 제거 시 같이 제거된다. |
AudioObserver | |
AnimObserver |
Subject 객체 참조를 통해 Action을 통한 이벤트 저장
주의점
이벤트 기반 아키텍쳐는 더 많은 설정이 필요.
객체 삭제 시 이벤트 제거가 되는지 확인
관찰자에게는 이벤트를 정의하는 클래스 참조가 필요[종속성 존재]
정적 EventManager에서 사용하면 객체 분리에 도움
이벤트 구조는 많은 오버헤드 발생 및 많은 씬과 오브젝트는 성능에 악영향