본문 바로가기

책 공부/Effective Java

Effective Java Item 3. Private 생성자나 열거타입으로 싱글톤을 보장하라

반응형
싱글톤을 만드는 방법 3가지

 

싱글톤이란?
생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나만을 호출한다.
최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 

 

 

1. Eager Initalzation (이른 초기화) 

- 클래스의 인스턴스를 클래스 로딩 시점에 생성하는 방법

 

2. Static Block Initializatuin (정적 블럭 초기화)

- Eager Initalzation (이른 초기화) 방식과 동일하지만 변수 셋팅 및 에러처리를 위한 구문을 담을 수 있다. 

3. Lazy Initialization (늦은 초기화)

- 클래스의 인스턴스가 사용되는 시점에 생성하는 방법
- Multi Thread 방식에서 싱글톤 보장이 되지 않는 다는 단점이 있다.

5. Enum Initialization (Enum 초기화)

- Enum type의 특징(한번만 초기화)을 이용해 싱글톤을 구현하는 방법

 


싱글톤을 보장해야 하는 이유

 

1. 의도하지 않는 객체 생성을 방지할 수 있다.

- 한번의 객체 생성으로 재 사용하기 때문에 메모리 낭비를 방지할 수 있다.

2. 이미 생성되어 있는 인스턴스를 재 사용할 수있다.

- 생성된 인스턴스를 호출하기 때문에속도가 빠르다.

 

 

반응형