언리얼 컴포지션

Unreal 이론|2024. 8. 13. 17:39

[이득우의 언리얼 프로그래밍 수업의 정리]

 

컴포지션이란?

-> 객체 지향 설계에서 상속은 Is-A 관계(부모와 자식간의 관계)

-> 컴포지션은 Has-A 관계(성질이 다른 두 객체에서 어떤 객체가 다른 객체를 소유하는 관계)를 구현하는 설계 방법.

-> 복잡한 기능을 가진 거대한 클래스를 효과적으로 설계

 

모던 객체 설계 기법의 핵심은 상속을 단순화하고, 단순한 기능을 가진 다수의 객체를 조합해 복잡한 객체를 구성하는 것.

-> 이 과정에서 컴포지션을 적극 활용해 복잡한 기능을 가진 객체를 구성

 

하나의 언리얼 오브젝트에는 항상 클래스 기본 오브젝트 CDO가 1대1로 매칭되어있다.

-> 그렇다면 언리얼 오브젝트의 컴포지션은 어떻게 구현하는가?

-> 1) CDO에 미리 언리얼 오브젝트를 생성해 조합(필수적 포함) -> CreateDefaultSubobject() API 사용

-> 2) CDO에 빈 포인터만 넣고 런타임에서 언리얼 오브젝트를 생성해 조합(선택적 포함) -> NewObject API 사용

언리얼 오브젝트를 생성할 때 컴포지션 정보 구축 가능

-> 내가 소유한 언리얼 오브젝트: SubObject

-> 나를 소유한 오브젝트: Outer

 

언리얼 C++가 제공하는 확장 열거형도 사용해 다양한 메타정보 넣고 활용

 

'Unreal 이론' 카테고리의 다른 글

언리얼 컨테이너 라이브러리 - Array, Set  (0) 2024.08.14
언리얼 델리게이트  (0) 2024.08.14
언리얼 인터페이스  (0) 2024.08.08
언리얼 프로퍼티 시스템(리플렉션)  (0) 2024.08.04
언리얼 오브젝트 개념  (0) 2024.08.03

댓글()