SMALL
인터페이스의 장점.
다형성, 리플렉션/RTTI(Run-Time Type Information), BP와의 유연한 연동.
다중 상속 구조 가능.
여러 클래스를 대상으로 같은 인터페이스를 씌워 각각 다르게 구현할 수 있음.
BP와의 유연한 통합을 위한 사용 방법으로는
BlueprintImplementableEvent, BlueprintNativeEvent 두 가지가 있음.
여기서 IInterface::Execute_AnyFunc으로 호출하는 경우에는
블루프린트에서 해당 함수가 구현되어 있으면
C++쪽 기본 구현은 무시되고, BP쪽 오버라이드가 우선됨.
하지만 BP에서의 구현이 없다면 C++ 기본 구현이 실행됨.
C++ 기본 구현이 존재하는 경우로는 위에서 말한 BlueprintNativeEvent의 경우가 있는데
만약 C++로 C++ 구현 부분만 호출하고 싶다면 _Implementation를 호출하면 됨.
GPT한테 물어보면 아무리 물어봐도 이 정도 까지만 얘기해 주지만 내 생각은 약간 다름.
인터페이스를 사용함으로써 생기는 추가 이점은
타입 의존성을 줄일 수 있음.
호출자 쪽에서 필요한 함수를 갖고 있는 타입 클래스를 Include할 필요 없이 인터페이스만 Include해도 됨.
런타임 성능 향상은 딱히 없지만 컴파일 시간/결합도 측면에서 간접적인 이득이 약간 발생함.
또한 결합도 감소의 이점도 존재함.
교체 가능한 계약으로 설계가 유연해지는 장점.
사실 아주 큰 차이는 없긴 하지만 이러한 추가 장점들을 보유하고 있음.
반응형
SMALL
'UnrealEngine5 > C++' 카테고리의 다른 글
| UE C++ 매크로들 재정리 (0) | 2025.09.08 |
|---|---|
| UE TMap<> 재정리 (0) | 2025.09.07 |
| UE TArray<> 재정리 (5.6.1 기준) (2) | 2025.09.07 |
| Replicated SubObject With Iris/Replication Graph 재정리 (UE5.7 기준) (0) | 2025.09.06 |
| TWeakPtr<T> 재정리 (0) | 2025.08.24 |
| TUniquePtr 재정리 (0) | 2025.08.24 |
| TWeakObjectPtr<T> 재정리 (0) | 2025.08.24 |
| TObjectPtr<T> 재정리 (0) | 2025.08.24 |