반응형

Design Pattern - Singleton Pattern


(원문 위치 : http://www.tutorialspoint.com/design_pattern/singleton_pattern.htm )

싱글톤 패턴은 자바에서 가장 간단한 디자인 패턴 중 하나이다. 이 디자인 패턴 형태는 객체를 생성하기 위한 최상의 방법 중 하나를 제공하기 때문에 생성적 패턴에 포함된다.

이 패턴은 오로지 단일 객체가 생성되어지는 것을 확실하게 만드는 객체를 생성하는 책임이 있는 단일 클래스에 관여한다. 이 클래스는 클래스의 객체를 인스턴스화할 필요없이 직접적으로 접근되어 질 수 있는 객체에 접근하는 방법을 제공한다.

Implementation

SingleObject 클래스를 생성할 것이다. SingleObject 클래스는 private으로써 생성자를 갖고 스스로의 정적(static) 인스턴스를 갖는다.

SingleObject 클래스는 외부에서 정적 인스턴스를 얻기 위한 정적 메소드를 제공한다. SingletonPatternDemo, 데모 클래스는 SingleObject 객체를 얻기 위한 SingleObject클래스를 사용할 것이다.
Singleton Pattern UML Diagram

Step 1

Singleton 클래스를 생성한다.

SingleObject.java

public class SingleObject {

   //create an object of SingleObject
   private static SingleObject instance = new SingleObject();

   //make the constructor private so that this class cannot be
   //instantiated
   private SingleObject(){}

   //Get the only object available
   public static SingleObject getInstance(){
      return instance;
   }

   public void showMessage(){
      System.out.println("Hello World!");
   }
}

Step 2

singleton 클래스로부터 유일한 객체를 얻는다.

SingletonPatternDemo.java

public class SingletonPatternDemo {
   public static void main(String[] args) {

      //illegal construct
      //Compile Time Error: The constructor SingleObject() is not visible
      //SingleObject object = new SingleObject();

      //Get the only object available
      SingleObject object = SingleObject.getInstance();

      //show the message
      object.showMessage();
   }
}

Step 3

결과를 확인한다.

Hello World!


반응형

+ Recent posts