싱글톤 패턴(Singleton Pattern)
어떤 클래스가 최초 한번 메모리를 할당한 후 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴
생성자가 여러번 호출되도 실제 생성된 객체는 하나고 최초 생성 이후 호출된 생성자는 최초에 생성한 객체를 반환
싱글톤 패턴은 단 하나의 인스턴스를 생성해 사용하는 디자인패턴
장점
-사용하지 않으면 아예 인스턴스를 생성하지않음
-고정된 메모리 영역을 얻으면서 한번의 new로 인스턴스를 사용하기 때문에 메모리 낭비를 방지
-전역 인스턴스이기 때문에 데이터를 공유하기 쉬움
-공통된 객체를 여러개 생성,사용할 경우 많이 사용
단점
-싱글톤 인스턴스가 너무 많은 일을 하거나 많은 데이터를 공유시킬 경우 다른 클래스의 인스턴스들 간에 결합도가 높아져 개방-폐쇠원칙을 위배하게 된다.
-멀티쓰레드 환경에서 동기화 처리를 안하면 인스턴스가 두개 생성되는 경우가 발생할 수도 있음
Lazy initialization?
Eager Initialization의 인스턴스를 사용하지 않더라도 인스턴스는 항상 생성된다는 단점을 보완한 방법이다.
그를 통해 원하는 시점에 초기화를 할 수 있다.
'Programming > C++' 카테고리의 다른 글
범위 지정 연산자(::) (0) | 2020.12.23 |
---|---|
매크로 함수,인라인 함수 (0) | 2020.12.23 |
매개변수의 디폴트 값 (0) | 2020.12.23 |
비주얼 스튜디오 다중 문자열 검색 (0) | 2020.08.04 |
[C/C++] Precompiled Header(미리 컴파일된 헤더) (0) | 2019.08.29 |