SqueakByExample:12.8
12장 요약
지금 여러 분은 클래스가 조직되는 방식과, 균일한 오브젝트 모델(uniform object model)의 영향(impact)에 대한 좀더 나은 이해를 하실 수 있어야만 합니다. 만약 여러분이, 내용을 잊어버리셨거나, 혼동된다면, 메시지 전달(message passing)은 수신자(receiver)의 클래스에서 메소드를 찾기 위한, 키(key)라는 사실을 항상 기억하셔야 합니다. 만약 메소드가 수신자의 클래스에서 발견되지 않으면, 그 클래스의 supperclass에서 검색될 수 있습니다.
- 모든 클래스는 metaclass의 인스턴스입니다. Metaclass들은 묵시적입니다. 여러분이 Metaclass의 단일 인스턴스인 클래스를 만들 때 Metacalss는 자동으로 생성됩니다.
- 메타클래스 계층도는 클래스 계층도와 평행을 이룹니다. 클래스를 위한 메소도 lookup은 보통 오브젝트(ordinary object)를 위한 메소드 lookup과 평행을 이루며, 그리고 메타클래스의(metaclass)의 수퍼클래스 사슬(superclass chain)을 따릅니다.
- 모든 메타클래스는 Class와 Behavior로부터 상속을 받습니다. 모든 클래스는 클래스(Class)입니다. 메타클래스(metaclass)들 또한 클래스들이기 때문에, 클래스(Class)로부터 상속받아야만 합니다. Behavior는 인스턴스들을 가진 모든 엔티티들에 공통인 behavior를 제공합니다.
- 모든 메타클래스(metaclass)는 Metaclass의 인스턴스입니다. ClassDescription은 Class와 Metaclsss에 공통인(common) 모든 것을 제공합니다.
- Metaclass의 metaclass는 Metaclass의 인스턴스입니다. relation의 인스턴스는 단힌 루프(closed loop)를 구성하므로 Metaclass class class → Metaclass가 됩니다.