https://coding-factory.tistory.com/709
https://www.youtube.com/watch?v=lJES5TQTTWE
싱글톤 패턴이란?
하나의 인스턴스를 메모리에 등록해서 여러 스레드가 동시에 해당 인스턴스를 공유하여 사용
* 간단하게 말해 인스턴스를 하나만 만들어서 사용하는 것
싱글톤 패턴을 쓰는 장점
- 인스턴스끼리 데이터 공유가 쉽다.
설정 기능 같은 경우 하나의 객체를 두고 여러군데서 그 설정을 공유해야하기 때문에 싱글톤 패턴을 이용하는게 바람직하다. - 메모리는 컴파일시 한 번만 할당이 되기 때문에 메모리 낭비가 없다.
- 인스턴스가 단 하나만 있다는 걸 알 수 있다.
싱글톤 패턴을 쓰는 단점
- 싱글톤 인스턴스에 연관된 것들이 많아질 수록 종속성과 결합도가 높아져 객체지향 프로그래밍에 위반된다.
- 이 때문에 수정과 테스트가 어려워짐
- 객체지향 설계라면 각각의 역할이 분리되어 있고 자율성이 높아야함. - 멀티쓰레드환경에서 동기화처리를 안하면 인스턴스가 두개가 생성된다든지 하는 경우가 발생할 수 있다.
클래스가 초기화될 때 인스턴스 생성
사용하지 않아도 생성이 되는 단점이 있음
늦은 초기화는 인스턴스를 실제로 사용할 시점에 생성하는 방법
멀티 쓰레드 환경에서 두 쓰레드가 동시에 접근할 경우 중복 생성이 될 수 있는 문제가 있다.
synchronized를 통해 여러 스레드가 동시에 접근하는 걸 방지
하지만 많은 스레드가 접근을 하면 성능이 저하될 수 있는 단점이 있다.
'Programming > 디자인 패턴' 카테고리의 다른 글
옵저버 패턴 (0) | 2021.11.08 |
---|