본문 바로가기

IT일반과목/java

자바 싱글톤(Singleton)

싱글톤(Singleton)

전체 프로그램에서 단 하나의 객체만 만들도록 보장해야 하는 경우가 있다.

단 하나만 생성된다고 해서 이 객체를 싱글톤(Singleton)이라고 한다.



조건

1. 싱글톤 만들려면 클래스 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아야 한다.

2. 생성자를 외부에서 호출할 수 없도록 하려면 생성자 앞에 private 접근 제한자를 붙여줘야 한다.


ex)예시

-----------------------------------------------------------------------------------------------------

public class Singleton {

private static Singleton singleton = new Singleton();


private Singleton() {}


static Singleton getInstance() {

return singleton;

}


}

--------------------------------------------------------------------------

public class SingletonExample {

public static void main(String[] args) {

/*

Singleton obj1 = new Singleton(); //컴파일 에러

Singleton obj2 = new Singleton(); //컴파일 에러

*/


Singleton obj1 = Singleton.getInstance();

Singleton obj2 = Singleton.getInstance();


if(obj1==obj2){

System.out.println("같은 Singleton 객체 입니다.");

} else {

System.out.println("다른 Singleton 객체 입니다.");

}

}

}