SqueakByExample:12.7

From 흡혈양파의 번역工房
Revision as of 07:59, 18 August 2012 by Onionmixer (talk | contribs) (SBE Metaclass의metaclass는Metaclass의인스턴스입니다 페이지 추가)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Metaclass의 metaclass는 Metaclass의 인스턴스입니다.

그림 12.10: 모든 메타클래스들은 심지어 Metaclass의 metaclass이기도 한, 클래스 Metaclass의 인스턴스입니다.(12.6에 같은 그림이 있습니다)


답변되어야 할 마지막 질문은 Metaclass class의 클래스가 무엇인가? 입니다.

답변은 단순합니다. 그 클래스는 메타클래스(metaclass)이며, 시스템에 있는 모든 다른 메타클래스(metaclases)들 처럼, 반드시 Metaclass의 인스턴스가 되어야 합니다. (그림 12.10을 보십시오)

그림은 Metaclass 자체의 metaclass를 포함하여, 어떻게 모든 metaclass가 Metaclass의 인스턴스인지를 보여드립니다. 만약 여러분이 그림 12.9와 12.10을 비교하신다면, 메타클래스 계층도(the metaclass hierarchy)가, 오브젝트 클래스에 이르기까지 클래스 계층도(class hierarchy)를 어떻게 완벽하게 반영(mirror)하는지를 보게 되실 것입니다.

다음 예시는, 그림 12.10이 정확하다는 것을 나타내기 위해 클래스 계층도를 조회하는 방법을 보여드립니다. (실제로, 여러분은 우리가 악의없는 거짓말을 하였다는 것을 알게 되실 것입니다. Object class superclass ⇒ ProtoObject class이며, ⇒ Class가 아닙니다. 스퀵에서, 우리는 Class에 도달하기 위해 더 높은 superclass로 가야 합니다)


예시 12.1: 클래스 계층도 (The class hierarchy)

TranslucentColor superclass        Color
Color superclass        Object


예시 12.2: 평행 메타클래스 계층도(The parallel metaclass hierarchy)

TranslucentColor class superclass        Color class
Color class superclass        Object class
Object class superclass superclass        Class "NB: skip ProtoObject class"
Class superclass        ClassDescription
ClassDescription superclass        Behavior
Behavior superclass        Object


예시 12.3: Metaclass의 인스턴스

TranslucentColor class class        Metaclass
Color class class        Metaclass
Object class class        Metaclass
Behavior class class        Metaclass


예시 12.3: Metaclass의 class는 Metaclass입니다

Metaclass class class        Metaclass
Metaclass superclass        ClassDescription


Notes