단 하나의 인스턴스(객체)만 필요한 경우
인스턴스가 절대도 1개만 있음을 보장하고 싶을 때
📌Singleton : 인스턴스가 1개만 존재하는 클래스
📌Main : 동작테스트
✔️인스턴스를 1개 밖에 만들 수 없음
✔️singleton은 static 필드로서 Singleton 클래스의 인스턴스에서 초기화됨.
✔️이 초기화는 Singleton 클래스 로드할때 딱 한 번 실행됨.
✔️Singleton 클래스 의 생성자는 private
public class Singleton{
private static Singleton s = new Singleton(); //Main 에서 객체 생성없이 Singleton 사용가능
private Singleton(){
System.out.println("인스턴스가 생성됨");
}
public static Singleton getInstance(){
return s; //항상 Singleton 타입의 s를 반환
// Singleton클래스의 유일한 인스턴스를 얻는 메소드 ->static
}
}
public class Main{
public static void main(String[] args){
System.out.println("start");
Singleton ob1=Singleton.getInstance(); //Singleton 객체 생성없이 만들어짐 ->static
Singleton ob2=Singleton.getInstance();
if (ob1==ob2) {
System.out.println("ob1와 ob2는 같다")
}
else{
System.out.println("ob1와 ob2는 다르다")
}
System.out.println("end")
}
}