Written by
LSM
on
on
TIL:Singleton Pattern
Singleton Pattern
- 어플리케이션이 작동될 때 클래스가 최초 한 번만 메모리를 할당
- 할당된 메모리에 인스턴스를 만들어 사용하는 디자인 패턴
- 생성자가 여러 번 호출되더라도 최초 생성한 객체만 리턴
사용 이유
- 메모리 낭비를 방지
- 전역 인스턴스이기 때문에 다른 인스턴스에서 데이터 공유가 쉬움
- DBCP 같은 객체를 여러 개 생성해서 사용하는 상황에서 사용
인스턴스를 1개만 사용하고 싶을 때 사용 2번째 호출부터 객체 로딩 속도가 빠름
문제점
- 싱글톤 객체가 많은 일을 하거나 데이터 공유가 많아지면 인스턴스 결합도가 높아짐
- 수정이 어렵고 테스트가 힘들어짐
- 멀티스레드 환경에서 동기화 처리를 하지 않을 경우 인스턴스 2개 발생
- 꼭 필요한 경우가 아니면 지양