Creational Patterns(생성 패턴) :: Singleton(단일체)
구분
객체 생성 (Object Creational)
의도
- 오직 한 개의 클래스 인스턴스만을 갖도록 보장하고, 이에 대한 전역적인 접근점을 제공한다.
사용시기
- 클래스의 인스턴스가 오직 하나여야 함을 보장하고, 잘 정의된 접근점(access point)으로 모든 사용자가 접근할 수 있도록 해야 할 때
- 유일한 인스턴스가 서브클래싱으로 확장되어야 하며, 사용자는 코드의 수정없이 확장된 서브클래스의 인스턴스를 사용할 수 있어야 할 때
장점과 단점
1. 유일하게 존재하는 인스턴스로의 접근을 통제한다.
2. 이름 공간(namespace)을 좁힌다.
3. 연산 및 표현의 정제를 허용한다.
4. 인스턴스의 개수를 변경하기가 자유롭다.
5. 클래스 연산을 사용하는 것보다 훨씬 유연한 방법이다.
구현의 유의점
1. 인스턴스의 유일함을 보장해야 한다.
2. Singleton 클래스를 서브클래싱한다.
관련 패턴
많은 패턴이 Singleton패턴으로 구현될 수 있다.
참조문헌
- GoF의 디자인패턴
댓글 없음:
댓글 쓰기