SqueakByExample:12.8

From 흡혈양파의 번역工房
Jump to navigation Jump to search

12장 요약

여러분은 클래스가 어떻게 조직되고있으며, 일관성있는 객체모델이 어떤 영향을 가져오는가에 대해서 좀 더 잘 이해하실 수 있었을거라 생각합니다. 혹시 배운내용을 잊어버리거나 헷갈리는 경우가 발생한다면, 메시지의 전달은 수신자의 클래스에서 원하는 메서드를 찾는경우 가장 중요한 방법이 된다는 사실을 항상 기억해주시기 바랍니다. 메시지의 수신자 클래스에서 메서드를 찾는것이 가장 좋습니다. 만약 메서드를 수신자의 클래스에서 찾을 수 없다면 super클래스에서 조회를 하는것이 좋습니다.

  • 모든 클래스는 메타클래스의 인스턴스입니다. Metaclass 들은 암묵적입니다. 메타클래스는 클래스를 정의할때 그 클래스를 유일한 인스턴스로 하도록 자동으로 만들어집니다.
  • 메타클래스 계층은 클래스 계층과 평행적 관계가 됩니다. 클래스의 메서드 검색은 일반적인 객체의 메서드 검색과 병행되며, 메타클래스의 상속관계에 의해 진행됩니다.
  • 모든 메타클래스는 Class와 Behavior 로부터 상속을 받습니다. 모든 클래스는 클래스(Class)입니다[1]. 메타클래스 또한 클래스이기 때문에, Class 를 상속받고 있습니다. Behavior는 인스턴스들을 가진 모든 존재에게 공통적인 작동을 제공합니다.
  • 모든 메타클래스는 Metaclass 의 인스턴스입니다. ClassDescription 은 Class 와 Metaclsss 에서 필요한 공통것들을 제공합니다.
  • Metaclass 의 메타클래스는 Metaclass 의 인스턴스가 됩니다. 클래스-인스턴스 간의 관계instance-of는 닫힌 루프closed loop를 구성하기 때문에, Metaclass class class ⇒ Metaclass 의 결과가 됩니다.


Notes

  1. Pharo by Example 일본어판에서는 모든 클래스는 Class 의 인스턴스입니다. 라고 되어있습니다