learn/design pattern

싱글톤 (Singleton)

사겅이 2023. 9. 22. 00:15

출처 : https://refactoring.guru/ko/design-patterns/singleton

 

특정 클래스의 인스턴스가 오직 하나만 생성되고, 이후에는 그 인스턴스를 공유하여 사용하는 패턴

객체 생성 및 리소스 소비를 최적화하고, 전역적으로 접근 가능한 단일 지점을 제공

 

  • 단일 인스턴스
  • 전역적 접근
  • 지연 로딩

 

public class Singleton {
    // 정적 변수로 인스턴스를 저장
    private static Singleton instance;

    // 생성자를 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); // true
    }
}

 

 

'learn > design pattern' 카테고리의 다른 글

빌더 (Builder)  (0) 2023.09.22
팩토리 (Factory)  (0) 2023.09.22