2020년 7월 7일 화요일

GOF Disign Pattern - Singleton






설명


 클래스의 인스턴스가 어디서든 접근 가능하나 전역적으로 딱 하나 필요할 때 쓰임.

 레지스트리를 이용한 Singleton Class 를 만들어서 내부에 있는 Singleton pool 에서 원하는 인스턴스를 들고오는 방식도 있음.

 멀티스레딩, 멀티프로세서 환경에서는 동시에 하나의 스레드에서만 Access 가능하도록 Mutex 같은걸 발라 줘야함.



예제 코드


1
2
3
4
5
6
7
8
9
10
11
12
class MazeSingletonFactory
{
public:
    static MazeSingletonFactory& Instace() 
    {
        static MazeSingletonFactory instance; 
        return instance; 
    };
 
protected:
    MazeSingletonFactory() = default;
};
cs


전역적으로 하나만이 있음을 static 지역 변수를 통해서 구현함.

이는 멤버변수를 통해서 할 수 있고 방법은 많음.




추가 설명

 모든 클래스에 다 적용가능함.

댓글 없음:

댓글 쓰기

List