싱글톤(Singleton) 패턴

싱글톤은 전역 네임스페이스에 종속 되지 않기 때문에 종종 전역 변수보다 선호됩니다.
또한 지연 할당 및 초기화를 허용하는 반면 전역 변수는 항상 리소스를 소비합니다.

싱글톤 패턴은 추상 팩토리, 팩토리 메소드, 빌더 및 프로토타입 패턴과 같은 다른 디자인 패턴의 기반으로도 사용할 수 있습니다.
파사드 객체는 단 하나의 파사드 객체만 필요하기 때문에 싱글톤인 경우가 많습니다.

메시지를 기록하려는 모든 객체는 단일 액세스 지점이 필요하고 개념적으로 단일 소스에 쓰기 때문입니다.[4]

최초 한번의 new 연산자를 통해서 고정된 메모리 영역을 사용하기 때문에 추후 해당 객체에 접근할 때 메모리 낭비를 방지할 수 있다.
뿐만 아니라 이미 생성된 인스턴스를 활용하니 속도 측면에서도 이점이 있다고 볼 수 있다.
다른 클래스 간에 데이터 공유가 쉽다

여러 클래스의 인스턴스에서 싱글톤 인스턴스의 데이터에 동시에 접근하게 되면 동시성 문제가 발생할 수 있으니 이점을 유의해서 설계하는 것이 좋다.

C++ Sample Source