[구현] 싱글톤 객체 구현
1. 싱글톤 패턴이란?
싱글톤 패턴이란 단 하나의 유일한 객체를 만들기 위한 패턴이다.
객체가 리소스를 많이 차지할 때 (DB연결, 네트워크 통신 등) 굳이 새로 만들지 않고 기존의 인스턴스를 가져와 활용하는 패턴이다.
2. 싱글톤 패턴 구현
싱글톤 패턴은 다음 7가지로 구현할 수 있는데 이중 Bill Pugh Solution 으로 구현한다.
- Eager Initialization
- Static block initialization
- Lazy initialization
- Thread safe initialization
- Double-Checked Locking
- Bill Pugh Solution
- Enum 이용
class Singleton {
private Singleton() {}
// static 내부 클래스를 이용
// Holder로 만들어, 클래스가 메모리에 로드되지 않고 getInstance 메서드가 호출되어야 로드됨
private static class SingleInstanceHolder {
private static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return SingleInstanceHolder.INSTANCE;
}
}
출처: https://inpa.tistory.com/entry/GOF-💠-싱글톤Singleton-패턴-꼼꼼하게-알아보자 [Inpa Dev 👨💻:티스토리]