디자인 패턴 - Singleton Pattern

Table of Contents

출처 : https://www.tutorialspoint.com/design_pattern/singleton_pattern.htm

Singleton pattern은 자바에서 가장 단순한 디자인 패턴 중 하나입니다. 이 패턴은 객체를 생성하는 가장 좋은 방법 중 하나를 제공하기 때문에 이러한 유형의 디자인 패턴은 생성 패턴에 속합니다.

이 패턴에는 단일 객체만 생성되도록 하는 동시에 객체 생성을 담당하는 단일 클래스가 포함됩니다. 이 클래스는 클래스의 개체를 인스턴스화할 필요 없이 직접 액세스할 수 있는 유일한 개체에 액세스하는 방법을 제공합니다.

Implementation

우리는 SingleObject 클래스를 만들 것입니다. SingleObject 클래스는 생성자를 private로 가지며 자체의 정적 인스턴스를 갖습니다.

SingleObject 클래스는 정적 인스턴스를 외부 세계로 가져오는 정적 메서드를 제공합니다. SingletonPatternDemo, 데모 클래스는 SingleObject 클래스를 사용하여 SingleObject 개체를 가져옵니다.

Singleton Pattern UML Diagram

Step 1

Singleton Class를 생성합니다.

SingleObject.java

 1public class SingleObject {
 2
 3   //create an object of SingleObject
 4   private static SingleObject instance = new SingleObject();
 5
 6   //make the constructor private so that this class cannot be
 7   //instantiated
 8   private SingleObject(){}
 9
10   //Get the only object available
11   public static SingleObject getInstance(){
12      return instance;
13   }
14
15   public void showMessage(){
16      System.out.println("Hello World!");
17   }
18}

Step 2

Singleton class에서 유일한 객체를 가져옵니다.

SingletonPatternDemo.java

 1public class SingletonPatternDemo {
 2   public static void main(String[] args) {
 3
 4      //illegal construct
 5      //Compile Time Error: The constructor SingleObject() is not visible
 6      //SingleObject object = new SingleObject();
 7
 8      //Get the only object available
 9      SingleObject object = SingleObject.getInstance();
10
11      //show the message
12      object.showMessage();
13   }
14}

Step 3

출력을 확인합니다.

1Hello World!

이 시리즈의 게시물