add_role — 조합할 역할(role) 목록에 추가하기
add_role — 조합할 역할(role) 목록에 추가하기
역할(role)은 여러 클래스가 공유할 행동을 묶는 도구예요. add_role은 메타클래스 레벨에서 '이 타입이 조합(compose)할 역할'의 목록에 역할 하나를 추가하는 메서드예요. 클래스가 does로 역할을 쓰는 걸 메타클래스 동작으로 옮겨 놓은 셈이에요.
본문
In role Metamodel::RoleContainer — 조합할 역할 추가
method add_role($obj, Mu $role)
$role을 조합(compose)될 역할 목록에 추가해요. 시그니처에서 $role의 타입이 Mu(Raku의 최상위 타입)로 되어 있는데, 말 그대로 역할 객체라면 무엇이든 넣을 수 있다는 뜻이에요.
여기서 포인트는 '목록에 추가한다'는 점이에요. 실제로 그 역할의 메서드들이 클래스에 합쳐지는 것은 조합 단계에서 일어나므로, 이 메서드는 그 전에 역할을 하나 등록하는 역할을 한다고 보면 돼요.