SqueakByExample:9.1

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

개요

Collection 클래스는 컬렉션(collection)과 스트림(stream)의 범용의 서브클래스에 대략적으로 정의된 그룹입니다.


"Blue Book"[1]에는 이러한 그룹의 구성으로 Collection 의 17 개의 서브클래스와 Stream 의 9 개의 서브클래스를 합친, 총 28개의 클래스가 취급되고 있으며, smalltalk-80 시스템이 릴리즈 되기 전에 이미 여러번 다시 설계되었습니다. 이런 클래스의 그룹은 객체지향 설계의 좋은예로 자주 언급됩니다.


스퀵에서, 추상 클래스인 Collection 은 98 개의 서브클래스를 갖고 있으며, 추상 클래인 Stream 은 39 개의 서브 클래스를 갖고 있습니다만, 이 서브클래스들 중 대부분의 클래스는 (Bitmap, FileStram, CompiledMethod 등) 시스템의 다른 부분들 또는 어플리케이션에서 사용하기 위해 공들여 만든 특별한 목적에 쓰이는 클래스들입니다. 이 장의 목적에 맟춰, 컬렉션과 Collections-* 로 라벨이 붙은 시스템 카테고리에 있는 컬렉션의 37 개의 서브클래스들을 구분하기 위해 "컬렉션 계층"이라는 용어를 사용하겠습니다. 또한 컬렉션 스트림 시스템 카테고리에 있는 Stream 과 그 Stream 으로 분류되는 10 개의 서브클래스들을 의미하기 위해 "스트림 계층"이라는 용어를 사용하겠습니다. 그림 9.1 에서 전체 목록을 확인할 수 있습니다. 이 49 개의 클래스들은 794 개의 메시지들에 반응하며, 총 1236 개의 메소드를 정의하고 있습니다.


이번 장에서는, 그림 9.2 에서 볼 수 있는 컬렉션 클래스의 subset 에 주로 집중할 것입니다. stream 은 별도로 10 장에서 다루도록 하겠습니다.


그림 9.1: 스퀵에서의 Collection 클래스. 들여쓰기(indent)는 하위분류를 나타냅니다. 이탤릭체로 쓴 클래스는 추상 클래스입니다. 강조체로 쓴 클래스는 "Blue Book"에 기술되어 있습니다.
그림 9.2: 스퀵에서의 몇 가지 핵심 컬렉션 클래스


Notes

  1. Adele Goldberg and David Robson, Smalltalk 80: the Language and its Implementation. Reading, Mass.: Addison Wesley, May 1983, ISBN 0–201–13688–0.