Language/Java
[Effective Java] Item 3
Lunker
2017. 1. 14. 15:44
Item 3.
- Singleton + serializable일 떄에는 추가적인 작업이 필요하다.
- single-element enum type is the best way to implement a singleton.
[Singleton 구현 방법]
- 일반적인 singleton 구현은, 인스턴스가 사용되는 시점에 생성되지 않는다. private static xxx = new xxx();로 인하여 클래스가 로드될 때 생성된다.
- 이를 극복하기 위해 lazy initiailzation을 사용한다.
-> private static xxx;만 해놓고 getInstance()에서 생성자 호출.
-> 하지만 이러한 방법은 multi thread일 경우 안전하지 않다.
-> 동시에 getInstance()를 호출하게 되면, 여러개의 instance가 생성될 수 있다.
- initialization on demand holder idiom !! [best]