트레이트 – 08.클래스 스코프

트레이트는 상속이 아닌 복사·붙여넣기 메커니즘에 따라 클래스에 조합(insert)되기 때문에 아래 예제에서 트레이트 SayWorld와 이를 조합 트레이트 MySayWorld는 동일한 클래스 스코프(class scope)를 가지게 됩니다.

소스 코드 상의 MyHelloWorld 클래스 스코프

컴파일할 때 트레이트 SayWorld와 MySayWorld가 먼저 클래스 MyHelloWorld로 조합이 완성되는 단계에 이르게 되면 코드의 구조는 아래와 같이 조합이 완성된 MyHelloWorld가 기반 클래스 Base로부터 상속 받는 형태로 변하게 됩니다.

조합이 완성된 단계에서의 MyHelloWorld 클래스 스코프

트레이트는 코드 중복을 방지하는 것이 주요 목표인 유연한 코드 재사용을 위한 가벼운 메커니즘을 제공하기 위한 것입니다. 따라서 트레이트를 일반적인 클래스 사용 사례와 혼동해서는 안됩니다.

답글 남기기