설명
클래스의 인스턴스가 어디서든 접근 가능하나 전역적으로 딱 하나 필요할 때 쓰임.
레지스트리를 이용한 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 지역 변수를 통해서 구현함.
이는 멤버변수를 통해서 할 수 있고 방법은 많음.
추가 설명
모든 클래스에 다 적용가능함.
댓글 없음:
댓글 쓰기