싱글톤(Singleton)
싱글톤(Singleton)
- 전체 프로그램에서 단 하나의 객체만 만들도록 보장하는 경우, 단 하나만 생성한다고 해서 이 객체를 싱글톤이라고 한다
- 클래스 외부에서 new 연산자로 생성자 호출 안되게 해야 한다
- 호출할 수 없도록 하려면 private 접근 제한자를 붙여준다
public class Singleton {
// 정적필드
private static Singleton singleton = new Singleton();
// 생성자
private Singleton() {}
// 정적 메서드
static Singleton getInstance() {
return singleton;
}
}
public class SingletonExample{
public static void main(String[] args) {
// 컴파일 에러 2가지 모두
Singleton obj1 = new Singleton();
Singleton obj2 = new Singleton();
// Singleton안에 있는 메서드를 객체를 만들면 리턴값인 private로 만들어진 singleton 객체만 만들어진다
// 결국 obj1 == obj2는 객체가 같다
// 힙영역을 공유한다 하나로
Singleton obj1 = Singleton.getInstance();
Singleton obj2 = Singleton.getInstance();
}
}
댓글남기기