[JAVA] 싱글톤 패턴 (Singleton)

Teeput ㅣ 2024. 3. 26. 18:08

📚 들어가기


📌 싱글톤 패턴

 

인스턴스가 오직 하나만 존재하도록 보장하는 디자인 패턴

보통은 생성자를 private으로 선언하고, 정적 메서드를 사용하여 유일한 인스턴스에 집근할 수 있도록 한다

 

📌 이해하기 쉽게 비유해보기

 

한대의 커피 머신이 있는데, 이 머신은 모든 사람에게 동일한 커피를 제공한다 여러 사람이 커피를 원할 떄마다 새로운 커피 머신을 구입하는 것은 비효율적이다 한 대의 커피 머신을 공유하고, 모두가 이 커피 머신을 사용하여 필요한 커피를 추출할 수 있다

 

커피 머신은 싱글톤 객체이고, 각 사용자는 이 객체에 대한 요청을 하게 된다 커피 머신이 항상 같은 객체를 반환하므로, 모든 사용자가 동일한 상태를 공유하고, 객체 생성 및 리소스 사용을 최적화 할 수 있다

 

👨🏻‍💻 코딩해보기


📌 싱글톤 패턴 예제

public class Singleton {
    // 정적 멤버 변수로 유일한 인스턴스를 저장합니다.
    private static Singleton instance = new Singleton();

    // private 생성자로 외부에서의 인스턴스 생성을 막습니다.
    private Singleton() {
    }

    // 유일한 인스턴스에 접근할 수 있는 정적 메서드를 제공합니다.
    public static Singleton getInstance() {
        // 인스턴스가 아직 생성되지 않았다면 생성합니다.
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }

}

 

📌 싱글톤 클래스 사용

public class Main {
    public static void main(String[] args) {
        // Singleton 클래스의 유일한 인스턴스를 얻습니다.
        Singleton singleton1 = Singleton.getInstance();
        Singleton singleton2 = Singleton.getInstance();

        // 두 인스턴스가 동일한지 확인합니다.
        System.out.println("singleton1과 singleton2는 동일한 객체입니까? " + (singleton1 == singleton2));
    }
}

 

 

'Java' 카테고리의 다른 글

[JAVA] Oracle DB Java 연결하기  (0) 2024.04.16
[JAVA] 소켓 프로그래밍 (Socket)  (0) 2024.03.28
[JAVA] 스트림 (Stream)  (0) 2024.03.27