Design Pattern에서 이야기하는 단일체의 기본형은
였다.
요새 가능하면 모든 프로그램을 정적으로 만들려던 나에게
저 방식은 C++에서는 무조건 메모리 해제가 필요한 상황이었고,
게다가 생성은 명시적으로 안 해주면서 해제의 책임은 지워야하는
정말 맘에 안 드는 방식이었다.
이에 고민하던 중 승중이가 알려준 방식이 있었으니
바로 이것이다.
진짜 딱 듣고 와 !하는 감탄사를 흘릴 수밖에 없었다.
대체 이게 무엇인고..
포인터를 만들지도 않고 소멸도 알아서 해주는..
그냥 완전 척척박사가 아닌가..!!
알고보니 More Effective C++에 있는 내용이었다. (항목 26.)
책을 보니 단일체라는 말은 나와있지 않고
저런 방식이 나와있던 것이었다.
단일체에 대해서 별로 관심을 가지지 않았을 때는
그냥 대수롭지 않았는데,
정말 필요할 때 보고는 감탄에 감탄에 감탄고토을 내질렀다.
이걸 보고는 Modern C++ Design과 The C++ Programming Language를 질렀다. (원태방식 인과율)
class Singleton{
public:
static Singleton getInstance(){ return selfInstance; }
private:
SIngleton();
static Singleton *selfInstance = new Singleton();
};
였다.
요새 가능하면 모든 프로그램을 정적으로 만들려던 나에게
저 방식은 C++에서는 무조건 메모리 해제가 필요한 상황이었고,
게다가 생성은 명시적으로 안 해주면서 해제의 책임은 지워야하는
정말 맘에 안 드는 방식이었다.
이에 고민하던 중 승중이가 알려준 방식이 있었으니
바로 이것이다.
class Singleton{
public:
static Singleton &getInstance();
private:
Singleton();
Singleton( const Singleton & ); // 복사생성자를 막는다.
};
Singleton &Singleton::getInstance()
{
static Singleton selfInstance;
return selfInstance;
}
진짜 딱 듣고 와 !하는 감탄사를 흘릴 수밖에 없었다.
대체 이게 무엇인고..
포인터를 만들지도 않고 소멸도 알아서 해주는..
그냥 완전 척척박사가 아닌가..!!
알고보니 More Effective C++에 있는 내용이었다. (항목 26.)
책을 보니 단일체라는 말은 나와있지 않고
저런 방식이 나와있던 것이었다.
단일체에 대해서 별로 관심을 가지지 않았을 때는
그냥 대수롭지 않았는데,
정말 필요할 때 보고는 감탄에 감탄에 감탄
이걸 보고는 Modern C++ Design과 The C++ Programming Language를 질렀다. (원태방식 인과율)
'프로그래밍 > C++' 카테고리의 다른 글
[C++] Insertion Sequance( std::vector, ... ) (4) | 2006.04.19 |
---|---|
[C++] 선언 없이 단 한 번만 실행되기 (6) | 2006.04.03 |
Java의 Package (0) | 2006.02.22 |
[C++]예외 처리 (0) | 2006.02.03 |
[C++]클래스와 구조체 (2) | 2006.02.03 |