Singleton (인스턴스를 한 개만 만들기)

트레드링스

참고 : JAVA 언어로 배우는 디자인 패턴 입문

클래스의 인스턴스가 단 하나만 필요한 경우가 있습니다. 그것은 시스템 안에서 한 개 밖에 존재하지 않는 것을 프로그램으로 표현하고 싶을 때입니다. 인스턴스가 한 개밖에 존재하지 않는 것을 보증하는 패턴을 Singleton 패턴이라고 합니다.

생성자 Singleton의 앞부분에 - 가 붙어있는 것은 Singleton이 private인 것을 명시하기 위해서 입니다. 또한 메소드 getInstance에 밑줄이 그어져 있는 것은 이 메소드가 static 메소드(클래스 메소드)이기 때문입니다. 이것은 UML 약속입니다.

public class Singleton {
 
private static Singleton singleton = new Singleton();
 
       
private Singleton() {
                   System.out.println("인스턴스를 생성했습니다.");
       }
 
       
 public static Singleton getInstance(){
                   return singleton;
        }

}


public class Main {

public static void main(String[] args) {
         System.out.println("Start!");

         Singleton obj1 = Singleton.getInstance();
         Singleton obj2 = Singleton.getInstance();

         if( obj1 == obj2 ) {
                  System.out.println("obj1과 obj2는 같은 인스턴스입니다.");
         } else {
                  System.out.println("obj1과 obj2는 다른 인스턴스입니다.");
         }
         System.out.println("End.");
     }
}

Q. Singleton 패턴에서는 인스턴스의 수를 제한하고 있습니다. 왜 일부러 제한적인 프로그래밍을 하는 것일까요?
복수의 인스턴스가 존재하면 인스턴스들이 서로 영향을 미치고, 뜻하지 않은 버그가 발생 할 가능성이 있습니다.
그러나 인스턴스가 한 개밖에 없다라는 보증이 있으면 그 전제조건 아래에서 프로그래밍 할 수 있습니다.

기업문화 엿볼 때, 더팀스

로그인

/