[Design Pattern] 싱글톤 패턴 더 알아보기 - 4

holder에 의한 싱글톤

이 방법은 inner class를 두어 JVM의 Class Loader 매커니즘과 클래스가 로드되는 시점을 이용한 방법이다. 지연 초기화와 멀티 스레드 환경에서 thread-safe를 보장하며 간단히 싱글톤을 구성할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
public class InitializationOnDemandHolderIdiomSingleton {
private InitializationOnDemandHolderIdiomSingleton() {}

private static class Holder{
private static final InitializationOnDemandHolderIdiomSingleton instance = new InitializationOnDemandHolderIdiomSingleton();
}

public static InitializationOnDemandHolderIdiomSingleton getInstance() {
return Holder.instance;
}
}
Author: Song Hayoung
Link: https://songhayoung.github.io/2020/08/13/Design%20Pattern/IntermediateSingleton4/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.