<aside> 💡 싱글턴 패턴(Singleton pattern)은 클래스 인스턴스를 하나만 만들고, 그 인스턴스로의 전역 접근을 제공한다.
</aside>
public class Singleton {
private static Singleton uniqueInstance; // 하나뿐인 인스턴스가 저장되는 정적 변수
// 기타 인스턴스 변수
private Singleton() {} // 생성자를 private으로 선언
public static Singleton getInstance() {
if (uniqueInstance == null) {
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
// 기타 메소드
}
private
으로 선언된 생성자를 사용해서 Singleton
객체를 만든 후, uniqueInstance
에 객체를 대입한다.public class Singleton {
private static Singleton uniqueInstance; // 하나뿐인 인스턴스가 저장되는 정적 변수
// 기타 인스턴스 변수
private Singleton() {} // 생성자를 private으로 선언
public static **synchronized** Singleton getInstance() {
if (uniqueInstance == null) {
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
// 기타 메소드
}
synchronized
키워드를 사용하여 두 개의 스레드가 해당 메소드를 동시에 실행하는 일이 일어나지 않도록 간단하게 문제를 해결할 수 있다.