노빠꾸 개발일지/JAVA

[Design Pattern] 싱글턴 패턴

No Backing 2021. 5. 9. 12:50
반응형

싱글턴 패턴(Singleton Pattern)이란? 

싱글턴 패턴이란 인스턴스가 하나 뿐인 특별한 객체를 만들 수 있게 해주는 패턴으로, 

 

싱글턴으로 생성된 인스턴스에 자유롭게 접근하여 사용이 가능하다.

 

싱글턴 패턴을 사용하는 이유는 인스턴스를 한번 생성 후, 재사용하여 사용하기 때문에 메모리낭비를 줄일 수 있다.

 

싱글턴 패턴은 인스턴스를 생성 후 같은 자원을 계속해서 이용하므로, 연결풀 또는 스레드 풀과 같은 자원 풀을 관리하는데도 자주 이용된다.

 

싱글턴 패턴 예제

1
2
3
4
5
6
7
8
9
10
public class Singleton {
    private static final Singleton singletonTest = new Singleton();    // 초기화 부분에서 인스턴스를 생성
 
    // 생성자를 private로 선언 - Singleton클래스에서만 Singleton 클래스의 인스턴스를 생성 가능
    private Singleton() { }    
 
    public static Singleton getInstance() {
        return singletonTest;    // 생성된 싱근턴 인스턴스를 리턴
    }
}
cs

 

위의 예제를 보면 생성자를 private로 선언하여 Singleton 클래스의 인스턴스를 외부에서는 생성이 불가능하고,

 

Singleton클래스 내부에서만 생성이 가능하도록 하였다.

 

초기화 부분에서 Singleton인스턴스를 생성했으니, 외부에서는 getInstance()를 이용하여 해당 인스턴스를 사용하면 된다.

 

1
2
    Singleton singleton = Singleton.getInstance();
    // ... 인스턴스를 이용하여 필요한 코드 작성
cs

 

외부에서는 위의 코드와 같이 생성된 싱글턴인스턴스를 받아서 필요한 코드를 이어서 작성하면 된다.

반응형