Design Pattern for Smalltalk – Singleton

t_Dpsc_chapter03_Singleton_01

Singleton 패턴을 아주 단순하게 설명하자면 단일 클래스에 대한 단일 인스턴스라고 할 수 있다. 하지만 정확하게 따지자면 Singleton은 “단일 인터페이스를 통한 단일 인스턴스의 관리”가 된다. Singleton이 구현된 환경이 단 한개의 class만이 존재하는것이 아니라 이 클래스를 상속받은 하위클래스가 존재하는 경우, 이 class 군에서 관리하는 인스턴스가 오직 하나만 존재하는것이 이 패턴의 핵심이라 할 수 있다. 상위클래스와 하위클래스가 존재하는 구조라고 해도 이 클래스 군에서는 하나의 인스턴스만 관리한다는 것이 Singleton 패턴이다. 이런경우 Singleton패턴을 환경변수 또는 현재 프로그램이 구동되는 환경에 따라 필요한 하위 클래스를 선택해서, 이를 단일 인스턴스로 관리하거나 필요한 동작 방식을 선택하게 된다.

Singleton의 하위클래스 까지 가지고 있는 구조의 경우 환경에 따라 어떤 레벨의 (또는 어떤 종류의) 하위 클래스를 사용하게 될지 등을 Singleton의 최상위 추상클래스의 initialize 초기화 메서드에서 선언해주면 이후 환경에 따라 자동으로 필요한 인스턴스를 생성하는 클래스를 설계할 수 있다.

Smalltalk 에서는 메타클래스가 Singleton의 예가 된다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.