[객체 생성 패턴] Chapter 1-5. Singleton Pattern : 자바에서 찾아보는 싱글톤

 

✍️ Runtime, 자바에서 찾아보는 싱글톤 패턴

자바 라이브러리에 들어있는 Runtime의 인스턴스는 싱글톤 패턴으로 제공된다. 

 

아래와 같이 new를 통해선 Runtime의 인스턴스를 절대 만들 수 없다.

public class App {
    public static void main(String[] args) {
        Runtime runtime = new Runtime();
    }
}

 

Runtime의 인스턴스는 getRuntime 메서드를 통해서 가져올 수 있다.

public class App {
    public static void main(String[] args) {
        Runtime runtime = Runtime.getRuntime();
    }
}

 

실제로 Runtime 클래스를 타고 가면 이른 초기화 (eager initialization) 방식으로 싱글톤 인스턴스를 제공하고 있으며 static 메서드를 통해 싱글톤 객체를 반환하고 private 생성자를 포함하고 있다.

public class Runtime {
    private static final Runtime currentRuntime = new Runtime();

    private static Version version;

    public static Runtime getRuntime() {
        return currentRuntime;
    }

    private Runtime() {}
    
    .
    .
    .
 }

 

그 외에도 스프링 빈 스코프 중 싱글톤 스코프스프링 컨테이너 내부에서 빈을 싱글톤으로 관리한다.