Java/6. 클래스 (Class)

Day 8 : 싱글톤 (Singleton)

pancakemaker 2021. 10. 28. 13:04

싱글톤

package sec10.exam04_singleton;

public class Singleton {
	//정적 필드
	private static Singleton singleton = new Singleton(); //객체 생성

	//생성자
	private Singleton() {} //private:외부에서 Singleton 생성자 호출 막음
	
	//정적 메소드
	static Singleton getInstnace() {
		return singleton; //singleton만 리턴함
	}
}

 

싱글톤 객체

package sec10.exam04_singleton;

public class SingletonExample {
	public static void main(String[] args) {
		/*
		Singleton obj1 = new Singleton();
		Singleton obj 2= new Singleton();
		Singleton 클래스에서 생성자가 private이므로 참조할 수 없음
		인스턴스 생성 불가
		*/
		
		Singleton obj1 = Singleton.getInstnace();
		Singleton obj2 = Singleton.getInstnace();
		
		if(obj1 == obj2) {
			System.out.println("같은 Singleton 객체 입니다."); //getInstance() 메소드는 singleton 만 return 하도록 선언되었음 
		} else {
			System.out.println("다른 Singleton 객체 입니다");
		}
	}
	
}
같은 Singleton 객체 입니다.