코드 출처 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

+ Recent posts