자바에서 싱글톤을 안전하게 호출하는 방법

jaybon·2023년 4월 16일
0

자바 java

목록 보기
11/11

자바에서 싱글톤 패턴을 구현하는 방법 중 하나는 이너 클래스(inner class)를 사용하는 것입니다. 이너 클래스를 사용하면 더욱 간결하고 안전한 싱글톤 객체를 만들 수 있습니다.

다음은 이너 클래스를 사용하여 싱글톤 객체를 만드는 예제 코드입니다.

public class Singleton {

    private Singleton() {}

    private static class SingletonHolder {
        private static final Singleton INSTANCE = new Singleton();
    }

    public static Singleton getInstance() {
        return SingletonHolder.INSTANCE;
    }
}

위의 코드에서는 Singleton 클래스의 생성자를 private으로 선언하여 외부에서 객체를 생성할 수 없도록 하였습니다. 그리고 SingletonHolder라는 private static inner class를 만들어 Singleton 객체를 생성합니다. 이렇게 함으로써 SingletonHolder 클래스는 Singleton 객체에 대한 참조를 가지고 있으므로 Singleton 객체가 처음 생성될 때 한 번만 생성됩니다.

getInstance() 메소드는 SingletonHolder.INSTANCE를 반환하여 외부에서 싱글톤 객체에 접근할 수 있도록 합니다. 이 방법을 사용하면 Singleton 객체는 게으르게(lazy) 초기화되며, getInstance() 메소드가 호출될 때 SingletonHolder 클래스가 로드되고 Singleton 객체가 생성됩니다. 이 방법은 멀티스레드 환경에서도 안전합니다.

profile
티스토리 블로그 https://ondolroom.tistory.com/

0개의 댓글