새소식

기타/디자인패턴

[디자인 패턴]Observe

  • -

[출처]https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns

 

Level up your programming with game programming patterns

Our new e-book explains well-known design patterns and shares practical examples for using them in your Unity project.

unity.com

 

 

 

어떠한 주체(Subject)의 상태가 변경될 때 그것을 다른 관찰자(Observer)에게 알리는 것
"일대 다" 의 느슨한 결합 상태

 

 

 

 

 


 

 

ButtonSubject 각 Observer에게서 Action을 통한 이벤트를 저장받는다.
버튼이 클릭된다면, 지정된 이벤트를 실행한다.
ParticleSystemObserver 게임 시작 시 Subject의 Action에 자신들의 함수를 저장한다
저장된 메서드는 자신의 오브젝트 제거 시 같이 제거된다.
AudioObserver
AnimObserver

 

Subject 객체 참조를 통해 Action을 통한 이벤트 저장

 


Subject
Observer

 

 


주의점
이벤트 기반 아키텍쳐는 더 많은 설정이 필요.
객체 삭제 시 이벤트 제거가 되는지 확인
관찰자에게는 이벤트를 정의하는 클래스 참조가 필요[종속성 존재]
정적 EventManager에서 사용하면 객체 분리에 도움
이벤트 구조는 많은 오버헤드 발생 및 많은 씬과 오브젝트는 성능에 악영향

'기타 > 디자인패턴' 카테고리의 다른 글

[디자인 패턴]MVP  (0) 2024.05.21
[디자인 패턴] State  (0) 2024.05.21
[디자인 패턴] Command  (0) 2024.05.21
[디자인 패턴] ObjectPool  (0) 2024.05.19
[디자인 패턴] Factory  (0) 2024.05.19
Contents

아핫

땡큐하다