Singleton 패턴

구름코딩·2020년 10월 30일

Java 디자인 패턴

목록 보기
7/12

싱글톤 패턴

하나의 인스턴스만을 가져도 되는 상황에서 사용하는 패턴으로 단 하나의 인스턴스만을 갖는 것이 보증이되는 방식이다

사용예시
데이터베이스를 관리하기 위한 데이터베이스 관리자 객체를 사용할 때마다 생성할 필요가없을 때 유일한 관리자 객체를 사용하는 방법 등으로 이용할수 있다

private static void singleton() {

    //new를 사용하지 않고 객체를 사용하는 방법 (하나의 객체만을 이용)
    Singleton singleton1 = Singleton.getSingleton();
    Singleton singleton2 = Singleton.getSingleton();

    if (singleton1 == singleton2)
        System.out.println("same");
    else
        System.out.println("not same");

    //new를 이용하여 별개의 객체를 생성하는 경우    
    String testNoSingleton1 = new String("Test");
    String testNoSingleton2 = new String("Test");

    if (testNoSingleton1 == testNoSingleton2)
        System.out.println("sameTest");
    else
        System.out.println("not sameTest");
}

singleton() 실행
//same  <-- 동일한 객체이다
//not sameTest   <-- 각 문자열은 별개의 객체이다

Singleton 클래스

내가 객체의 인스턴스를 유일하게 갖고 싶은 클래스를 선언한다

public class Singleton {

    //객체를 생성하는 곳
    private static final Singleton sInstance = new Singleton();

    //pulic이 아닌 private로 변경함으로서 생성자를 통한 new를(객체 생성을) 방지한다
    private Singleton() {
    }

    //생성된 객체는 getInstance()메소드를 통해서만 접근이 가능하다
    public static Singleton getInstance() {
        return sInstance;
    }
}
아래 방법을 막아야 추가적인 객체 생성을 방지할 수 있다
생성자를 public에서 private로 접근을 막는다
Singleton singleton3 = new Singleton();
profile
내꿈은 숲속의잠자는공주

0개의 댓글