코드 출처 C++] 싱글톤(Singleton)정의 방법과 설명. (tistory.com)
C++] 싱글톤(Singleton)정의 방법과 설명.
C++에서 자주는 아니지만 심심치않게 싱글톤(Singleton)을 활용한 사례들을 본적이 있습니다. 굳이 사용하지 않아도 알아두면 좋은 기법입니다. 왜냐하면 클래스의 거의 모든걸 고루 담고 있기 때
hwan-shell.tistory.com
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include <iostream> class Singleton { private: Singleton() {} Singleton(const Singleton& ref) {} Singleton& operator=(const Singleton& ref) {} ~Singleton() {} public: static Singleton& getIncetance() { static Singleton s; return s; } }; int main(void) { Singleton& s = Singleton::getIncetance(); return 0; } | cs |
객체를 호출할 때마다 null을 체크해서 null이라면 새로운 인스턴스를 생성해서 리턴하는 게 기존의 방법이었다.
그러나 해당 방법은 멀티스레드에 안전하지 않다는 문제가 있다.
헤드퍼스트 디자인패턴 책에서는 뮤텍스를 활용하는 방법으로 이를 막는다.
위의 예제는 그와 다르게 더 간단한 방법으로 스레드에 안전하게 만든다.
'software development methodology > HeadFirst DesignPattern' 카테고리의 다른 글
의존성 뒤집기 원칙(Dependency Inversion Principle) (0) | 2022.12.14 |
---|---|
팩토리 패턴 (0) | 2022.12.12 |
데코레이터 패턴 (0) | 2022.12.11 |
전략 패턴 (0) | 2022.12.08 |