본문 바로가기
공부/Object-Oriented Design Pattern

[OODP] Singleton Pattern (싱글톤 패턴)이란

by 혼밥맨 2021. 4. 4.
반응형

[OODP] Singleton Pattern (싱글톤 패턴)이란

 

프로그램을 작동시키면 보통 많은 인스턴스가 생성됩니다. 예를 들면, 문자열을 나타내는 java.lang.String 클래스의 인스턴스는 문자열 1개에 대해서 1개가 생성되기 때문에 문자열이 1,000개 등장하는 프로그램이라면 1,000개의 인스턴스가 만들어집니다. 

 

그러나 시스템 속에 1개 밖에 존재하지 않는 것을 프로그램으로 표현하고자 하는 경우에는 클래스의 인스턴스를 하나만 만듭니다. 컴퓨터 자체를 표현한 클래스, 현재의 시스템 설정을 표현한 클래스, 윈도우 시스템을 표현한 클래스 등이 예시입니다.

 

프로그래밍할 때 개발자가 new Class()가 한번밖에 실행되지 않도록 작성해 놓으면 Class()의 인스턴스는 1개만 생성됩니다.

 

이렇게 인스턴스가 1개만 존재하는 것을 보장하는 패턴을 "Singleton Pattern"이라고 합니다.

 

Singleton.java

 

Sg
1
2
3
4
5
6
7
8
9
10
public class Singleton {
    private static Singleton singleton = new Singleton();
    private Singleton () {
        System.out.println("Instance Created..");
    }
    
    public static Singleton getInstance() {
        return singleton;
    }
}
cs

 

 

Main.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Main {
    public static void main(String[] args){
        System.out.println("Begin");
        Singleton obj1 = Singleton.getInstance();
        Singleton obj2 = Singleton.getInstance();
        
        if(obj1 == obj2) {
            System.out.println("Obj1 and Obj2 are the same.");
        } else {
            System.out.println("Obj1 and Obj2 are not the same.");
        }
        System.out.println("Terminate..");
    }
}
cs
반응형

댓글