반응형
싱글톤을 만드는 방법 3가지
싱글톤이란?
생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나만을 호출한다.
최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다.
1. Eager Initalzation (이른 초기화)
- 클래스의 인스턴스를 클래스 로딩 시점에 생성하는 방법
2. Static Block Initializatuin (정적 블럭 초기화)
- Eager Initalzation (이른 초기화) 방식과 동일하지만 변수 셋팅 및 에러처리를 위한 구문을 담을 수 있다.
3. Lazy Initialization (늦은 초기화)
- 클래스의 인스턴스가 사용되는 시점에 생성하는 방법
- Multi Thread 방식에서 싱글톤 보장이 되지 않는 다는 단점이 있다.
5. Enum Initialization (Enum 초기화)
- Enum type의 특징(한번만 초기화)을 이용해 싱글톤을 구현하는 방법
싱글톤을 보장해야 하는 이유
1. 의도하지 않는 객체 생성을 방지할 수 있다.
- 한번의 객체 생성으로 재 사용하기 때문에 메모리 낭비를 방지할 수 있다.
2. 이미 생성되어 있는 인스턴스를 재 사용할 수있다.
- 생성된 인스턴스를 호출하기 때문에속도가 빠르다.
반응형
'책 공부 > Effective Java' 카테고리의 다른 글
Effective Java Item 6. 불필요한 객체 생성을 피하라 (0) | 2022.05.03 |
---|---|
Effective Java Item 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 (0) | 2022.05.01 |
Effective Java Item 4. 인스턴스화를 막으려거든 private 생성자를 사용하라 (0) | 2022.04.28 |
Effective Java Item 2. 생성자에 매개 변수가 많다면 빌더를 고려하라 (0) | 2022.04.24 |
Effective Java Item 1. 생성자 대신 정적 팩토리 메소드를 고려하라 (0) | 2022.04.19 |