검색결과 리스트
글
이번에 프로젝트를 하면서 전역객체를 사용할 일이 생겼었습니다.
전역객체로 진행하던중 이왕이면 디자인패턴을 사용해보자!!!
그래서 싱글턴을 이용해 보려고 합니다.
* 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