본문 바로가기
IT_Developers/JAVA

JAVA - 싱글톤(Singleton) 패턴이란? / 예제소스

by 고코더 2020. 3. 17.


싱글톤을 알아보자


안녕하세요.
고코더 입니다.


싱글톤(Singleton) 패턴을 알아보려고 합니다. 싱글톤은 최초에 한번만 실행합니다.  애플리케이션이 시작될때 최초 한번만 메모리를 할당하는 방법입니다. 동일 인스턴스를 사용하게 하는 특징이 있습니다. 다시 말해서 인스턴스가 프로그램 안에서 하나만을 생성되게 하고 이 인스턴스를 접근하게 만든 패턴입니다. 


 1. 싱글톤 비유


외로운 남자 일러스트 이미지 검색결과

결혼 안한 사람을 우린 싱글이라고 합니다. 싱글남은 소개팅을 하러 나갑니다. 매번 나간 소개팅에서 옷이랑 머리 스타일은 변하지만 사람은 그대로 입니다. 소개팅을 주선하는 주선자는 매번 똑같은 사람인 이 싱글남을 소개합니다. 싱글남은 언제나 준비되어 있고요. 항상 소개팅을 나갈 준비가 되어 있습니다. 싱글톤도 이와 같습니다. 최초에 소개팅 시켜준 그 남자가 결혼할때까지 전화번호를 저장해서 똑같은 사람에게 호출합니다. 같은 남자를 계속 호출하는 방법입니다. (..좀 어거지죠?)



 2. 예제소스 


싱글패턴에서는 private staic으로 선언을 합니다. new로 객체를 만들때 private 를 이용해 외부에서 객체를 생성할 수 없도록 합니다.  다시 한번 객체 생성을 요청하면 아래와 같이 기존의 객체를 사용하도록 합니다. 기본 생성자도 private를 사용해 외부에서 직접 생성하지 못하도록 합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Singleton {
    private static Singleton singleton = new Singleton(); // 외부에서 생성하지 못하게 한다.
 
    private Singleton() // 외부에서 생성하지 못하게 한다.
 
    public static Singleton getInstance(){
        if( singleton == null ){    // 또 다시 객체를 생성 요청시에 생성하지 않는다.
           singleton = new Singleton();
        }
 
        return singleton;
    }
}
cs

getinstance를 사용해 호출합니다. 객체가 생성되었다면 그대로 있던 객체를 반환하고 없다면 객체를 만들어 반환하겠죠

1
Singleton singleton1 = Singleton.getInstance();
cs



마무리


싱글남은 죄송합니다.
(고코더는 기혼)


댓글