정말 자주 쓰는 디자인 패턴 중 하나인 싱글톤 패턴이다. 개인적으로 디자인 패턴 중에서는 제일 구현도 쉽고 활용도도 높지 않나 한다.
웬만한 객체지향 언어는 지원이 되므로 어떤 형식을 가지는지 이해하면 타 언어(Java 등)에서도 활용 가능하다.
'static'으로 생성된 객체의 특징인 "프로그램이 실행 시 함께 할당되며(일반적으로), 프로그램 종료까지 메모리에서 해제되지 않는다"는 점을 이용하며,
단 하나의 객체만 만들고 실행 내내 해당 객체만 불러오는 특징이 있다. 그렇기 때문에 보통 프로그램 내에서는 매니저 클래스로 많이 사용된다.
사용되는 예시는 다음과 같은 형식이다. 사용 시에는 Singleton::Instance->함수() 등 다양한 방법이 있다
class Singleton
{
public:
static Singleton* Instance()
{
if( !m_pInstance ) // 인스턴스 할당
m_pInstance = new Singleton;
return m_pInstance;
}
private:
Singleton()
{
//초기화
}
~Singleton()
{
// 인스턴스 자체는 new로 생성하기 때문에 자동 삭제된다
};
static Singleton* m_pInstance;
};
'Programming > C&C++' 카테고리의 다른 글
[C/C++] atan2 함수로 각도 구하기 및 cos, sin 함수로 x, y 좌표 구하기 (9) | 2014.11.06 |
---|---|
[STL/C++] Iterator 반복문 사용 예시 (0) | 2014.10.24 |
[C++] 부모 클래스에서 자식 클래스의 함수를 호출(가상 함수) (2) | 2014.02.27 |
VS에서 메모리 누수 찾기 : Visual Leak Detector for Visual C++ (0) | 2013.11.05 |
[C] 라이브러리 호출 (0) | 2013.08.06 |