SqueakByExample:9.1

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

개요

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.