반응형
싱글톤은 태양, 달 이라고 생각하면 편하다. 이 우주에서 태양과 달은 하나밖에 없고 지구 어디서든 볼 수 있다.
즉 클래스를 만들었는데 그 클래스는 딱 하나만 생성되고 어디서든지 접근 가능하게 만들었다고 하자
이렇게 클래스를 만드는 기법을 싱글톤 패턴이라고 한다.
#include<iostream>
class Singleton{
private:
static Singleton* instance;
Singleton(){};
public:
static Singleton* getInstance(){
if(instance == nullptr){
instance = new Singleton();
}
return instance;
}
};
//static 멤버 변수는 모든 객체가 공유해야 하므로 프로그램 전체 영역에서 메모리 유지가 되야 한다.
//따라서 반드시 전역 범위에서 정의 및 초기화를 해주어야 한다.
Singleton* Singleton::instance = 0;
int main(){
Singleton* s = Singleton::getInstance();
Singleton* r = Singleton::getInstance();
std::cout<<s<<std::endl;
std::cout<<r<<std::endl;
return 0;
}
반응형
'기술면접' 카테고리의 다른 글
비동기와 멀티스레드의 차이 (1) | 2022.08.19 |
---|---|
파이썬 GIL 이란? (0) | 2021.04.17 |
[기술면접] CS기술면접 기초 질문들 모음 (0) | 2021.04.17 |
[기술면접] 프로세스와 스레드, 세마포어와 뮤텍스 차이 (0) | 2021.04.17 |
[기술면접] MVC 패턴이란 (0) | 2021.04.14 |
댓글