old/Java
싱글톤(Singleton)
물 개
2020. 11. 15. 15:11
전체 프로그램에서 단 하나의 객체만 만들도록 보장해야 하는 경우, 단 하나만 생성되는 이 객체를 싱글톤(Singleton)이라고 한다.
싱글톤을 만들려면 클래스 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아야 한다.
1. 생성자 앞에 private 접근 제한자를 붙인다.
2. 자신의 타입인 private 정적 필드를 하나 선언하고 자신의 객체를 생성해 초기화 한다.
3. 외부에서 호출할 수 있는 정적 메소드 getInstance()를 선언하고 정적 필드에서 참조하고 있는 자신의 객체를 리턴한다.
public class Singleton {
//정적 필드
private static Singleton singleton = new Singleton();
//생성자
private Singleton(){ }
//정적 메소드
public static getInstance() {
return singleton;
}
}
외부에서 객체를 얻는 유일한 방법은 getInstance() 메소드를 호출하는 것 뿐이다.
getInstance() 메소드는 단 하나의 객체만 리턴하기 때문에 아래 변수1과 변수2는 동일한 객체를 참조한다.
Singleton 변수1 = Singleton.getInstance();
Singleton 변수2 = Singleton.getInstance();
변수1 == 변수 2; //true