Programming Language/java

[디자인 패턴] 싱글톤 패턴

limdef 2023. 9. 1. 23:13

싱글톤 패턴 인스턴스를 반드시 1개만 제공하는 패턴으로 유명하여 간단하게 정리해본다.

 

1. 생성자를 private으로 막는다.

2. static Factory Method 방식의 일환으로 getInstance 메소드를 제공한다.

 

public class Singleton {
    private static Singleton instance;
    
    private Singleton() {
    	// 에러
    }
    
    public static Singleton getInstance() {
        // 인스턴스가 생성되지 않았을 경우에만 인스턴스를 생성합니다.
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

정적 변수에 private static Singleton instace = new Singleton(); 으로 선언하면 컴파일 과정(?)에 생성되어

게으른 초기화가 불가능해지기 때문에 위의 코드와 같이 구성하는 것이 좋다.