싱글톤 패턴 (singleton pattern)

JunSeong_Park·2023년 1월 1일
0

Singleton Pattern

인스턴스를 하나만 만들어서 사용하기 위한 패턴

connection pool , thread pool , device setting object 같이 instance 를 여러 개 만들게 되면 불필요한 자원을 사용 즉 프로그램이 예상치 못한 결과를 낳을 수 있다. 이러한 경우 싱글톤 패턴을 사용하면 매우 유용한데 3가지 기준에 만족해야한다.

  1. new 를 실행할 수 없도록 생성자에 private 접근 제어자를 지정

  2. 유일한 단일 객체를 반환할 수 있는 static method 가 필요

  3. 유일한 단일 객체를 참조할 static variable 이 필요

    Ex )

public class Singleton {
    static Singleton singleton; // 정적 참조 변수

    private Singleton(){}; // private 접근 제어자

    public static Singleton getInstance(){ // static variable 활용을 위해 static method
        if (singleton==null) {
						singleton= new Singleton(); // 여기서 정적 참조 변수와 private 접근제어자 활용
        }
        return singleton;
    }
}
public class Client {
    public static void main(String[] args) {
        Singleton s1 = Singleton.getInstance();
        Singleton s2 = Singleton.getInstance();
        Singleton s3 = Singleton.getInstance();

        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);

        s1 = null;
        s2 = null;
        s3 = null;
    }
}

실행 결과

DesignPattern.singletonPattern.Singleton@4eec7777 DesignPattern.singletonPattern.Singleton@4eec7777 DesignPattern.singletonPattern.Singleton@4eec7777

출처 : 스프링 입문을 위한 자바

profile
안녕하세요 언어에 구애 받지 않는 개발자가 되고 싶은 박준성입니다

0개의 댓글