반응형

인터페이스와 이벤트 디스패쳐의 차이점 중 하나를 기억하기 위해 글로 남긴다.
두 호출방식 중 선택하는 방법은 두가지를 고려해야한다.
1. 객체가 하드 레퍼런스(즉, 직접적인 참조)를 가지고 있어도 괜찮은가?
2. 참조의 방향?
를 고민 해야봐야 한다.
* 1번의 경우
Event Dispatcher는 직접적인 참조를 가지고 있다. 따라서 레벨에 로딩되어 있거나, 항시성을 가진 애들을 참조해서 쓰는것이 좋다.
인터페이스의 경우 호출받는 대상이 불특정 다수이기 때문이다.
참고사항으로,
Event Dispatcher는 직접적인 참조를 없애는 것이 아니라, 참조할 위치를 옮기는 것이다. 결국엔 바인딩할려면 Dispatcher를 가진 객체에 대한 참조가 필요하기 때문이다. 따라서 참조를 완전히 없애기 위해서는 Interface를 사용해야 한다.
* 2번의 경우
여기서 크게 3가지로 분류해봤다.
- 함수 호출: A가 B를 구체적으로 알고 시킴. (강한 참조 O)
- 이벤트 디스패처: B가 A를 알고 등록함. (강한 참조 O, 방향만 반대)
- 인터페이스: 서로 구체적인 클래스는 모름. (강한 참조 X)
즉, 1번과 2번을 고려해서 사용하는 것으로 두 호출방식의 차이점을 정리해봤다.
참고영상
반응형
'Unreal5 > 기본개념' 카테고리의 다른 글
| [UE5] Mian() To BeginPlay() 까지 과정 (0) | 2025.12.22 |
|---|---|
| [에디터 언어] 영문 써야하는 이유 (0) | 2025.09.30 |
| [언리얼5] DECLARE_(DYNAMIC)_MULTICAST_DELEGATE_TwoParams 차이 (0) | 2025.08.03 |
| [최적화] Render 관련 순서(Game, Render, Anim...) (4) | 2025.08.02 |
| [최적화] 오브젝트 풀링 (6) | 2025.08.02 |