검색결과 리스트
글
이번에 프로젝트를 하면서 전역객체를 사용할 일이 생겼었습니다.
전역객체로 진행하던중 이왕이면 디자인패턴을 사용해보자!!!
그래서 싱글턴을 이용해 보려고 합니다.
* Singleton Patterns ::
해당 클래스의 인스턴스가 한개만 생성해서 그 인스턴스를 전역객체 처럼 어디서든지
사용 할 수 있게 하는 디자인패턴입니다.
// Singleton.h class CSingleton { private: static CSingleton * m_pUniqueInst; CSingleton(); public: ~CSingleton(); static CSingleton & GetInstance(); };
// Singleton.cpp #include "Singleton.h" // static 초기화 CSingleton* CSingleton::m_pUniqueInst = NULL; CSingleton::CSingleton() { } CSingleton::~CSingleton() { if (m_pUniqueInst) delete m_pUniqueInst; } CSingleton & CSingleton::GetInstance() { if (m_pUniqueInst == NULL) m_pUniqueInst = new CSingleton; return *m_pUniqueInst; }
간단하게 만들어본 싱클턴입니다.
GetInstance() 멤버 함수가 static으로 선언되어 있기 때문에 아무곳에서나
호출 가능합니다. 그리고 생성자가 private로 선언되어 있기때문에 CSingleton의
인스턴스를 만들려고 하면은 컴파일 에러가 발생합니다.
ps. 위 싱글턴은 싱글스레드 용입니다. 멀티스레드에서는 문제가 생길수 있습니다.
'C/C++ > VC++ / MFC' 카테고리의 다른 글
[MFC] SS_NOTIFY와 Reflection Message (0) | 2008.03.24 |
---|---|
[MFC] 사용자 정의 메세지 (0) | 2008.03.19 |
[MFC] MFC에서 클래스 전역으로 사용하기 (0) | 2008.03.11 |
전처리 명령문에서 사용하는 defined 연산자 (0) | 2008.03.03 |
[MFC] HitTest() (0) | 2008.03.03 |
RECENT COMMENT