책 공부/Effective Java
Effective Java Item 3. Private 생성자나 열거타입으로 싱글톤을 보장하라
쪼멘탈
2022. 4. 26. 19:43
반응형
싱글톤을 만드는 방법 3가지
싱글톤이란?
생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나만을 호출한다.
최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다.
1. Eager Initalzation (이른 초기화)
- 클래스의 인스턴스를 클래스 로딩 시점에 생성하는 방법
2. Static Block Initializatuin (정적 블럭 초기화)
- Eager Initalzation (이른 초기화) 방식과 동일하지만 변수 셋팅 및 에러처리를 위한 구문을 담을 수 있다.
3. Lazy Initialization (늦은 초기화)
- 클래스의 인스턴스가 사용되는 시점에 생성하는 방법
- Multi Thread 방식에서 싱글톤 보장이 되지 않는 다는 단점이 있다.
5. Enum Initialization (Enum 초기화)
- Enum type의 특징(한번만 초기화)을 이용해 싱글톤을 구현하는 방법
싱글톤을 보장해야 하는 이유
1. 의도하지 않는 객체 생성을 방지할 수 있다.
- 한번의 객체 생성으로 재 사용하기 때문에 메모리 낭비를 방지할 수 있다.
2. 이미 생성되어 있는 인스턴스를 재 사용할 수있다.
- 생성된 인스턴스를 호출하기 때문에속도가 빠르다.
반응형