사용 목적:
Single Pattern. 이 패턴 형식의 근본 목적은 정해진 개수의 객체를 사용한다는 부분에 있다.
사용 예를 들면, 클래스 자체나 그 클래스의 상속을 받은 클래스의 객체를 수없이 만들어야 하는 상황에서
객체의 숫자에 따라서 시스템의 성능을 좌우하는 경우가 있다. 무한 생성되지 않도록 막거나, 단 1개의 객체 상태로 유지해야 할 필요가 있는 경우. 이 상황에서 객체의 개수를 상위 클래스 내에서 컨트롤을 한다는 것이다.
보통 1개의 객체만을 공용으로 사용해야 하는 경우 이 패턴 형식을 쓰는 것이 가장 효율적이라고 한다.
클래스 구조:
#: protected
+: public
BaseClass는 ChildClass1과 ChildClass2의 Parent Class이다. BaseClass에서 CreateInstance()를 static 전역으로 가지고 있으며 ChildClass1과 ChildClass2에서 CreateInstance()를 상세 구현한다. 객체를 생성할 때 생성자를 호출하는 것이 아니라 생성하고 싶은 객체의 종류에 해당하는 클래스의 CreateInstance() 멤버 함수를 호출하는 형태이다. 이는 각 클래스의 생성자가 모두 protected 영역에 숨겨져 있기 때문에 직접적으로 호출할 수 없다. 그리고 각 클래스의CreateInstance() 멤버 함수는 클래스 변수인 pChildArray_[] 배열 변수를 참조하여 빈 공간이 있을 경우에만 객체를 생성시켜 주기 때문에 그 해당 객체의 숫자를 제한 할 수 있게 되는 것이다.
'Architecture > Design Pattern' 카테고리의 다른 글
Design Pattern 간단 정리 (0) | 2009.03.02 |
---|