728x90
- 객체를 딱 하나만 생성하여 생성된 객체를 프로그램 어디에서나 접근하여 사용할 수 있도록 하는 패턴
- 싱글톤 패턴을 사용하면 객체 생성을 단 한 번으로 제한하여 객체들이 복제되는 경우를 방지할 수 있다.
- 메모리 낭비를 유발할 수 있다고 판단되는 경우 사용할 수 있다
장점
- 메모리 낭비를 방지할 수 있다.
- 싱글톤으로 만들어진 클래스와 다른 클래스의 인스턴스들의 데이터 공유가 쉽다
- 인스턴스가 절대적으로 한개만 존재하는 것을 보증하기에 개발 시 실수를 줄일 수 있다.
- 싱글톤 객체를 사용하지 않는 경우 인스턴스를 생성하지 않는다.
- 싱글톤을 상속시킬 수 있다.
단점
- 전역변수보다 사용하기가 불편하다
- 싱글톤의 역할이 커질수록 결합도가 높아져 객체 지향 설계 원칙에 어긋날 수 있다.
- 멀티쓰레드 환경에서 컨트롤이 어렵다
- 객체의 파괴 시점을 컨트롤 하기 어렵다
사용법
- 생성자를 클래스 자체에서만 접근할 수 있도록 private와 같이 접근 제어자를 통해 제어해주어야 한다
- 접근 제어자로 막는 것과 더불어 수정이 되지 않도록 막아야한다.
728x90
'Computer > DesignPattern' 카테고리의 다른 글
Design_Pattern (0) | 2023.01.30 |
---|