기록장

싱글톤을 설명해줄게 본문

카테고리 없음

싱글톤을 설명해줄게

HJJJJJ 2022. 5. 15. 00:38
728x90

싱글톤이란 

단 하나의 객체만 만들도록 보장할때 쓰는거야

 

단 하나만 생성된다고 싱글톤임

외부에서 생성자 호출을 막기 위해 private를 붙이면 돼


1 자신의 타입인 정적 필드를 하나 선언 

2 자신의 객체를 생성해 초기화

3정적 필드도 private접근 제한자를 붙여 외부에서 필드값을 변겅하지 못하도록 막음

4외부에서 호출할 수 있는 정적 메소드인 getInstance()를 선언하고 정적 필드에서 참조하고 있는

자신의 객체를 리턴함

Pubilc class 클래스{
//정적필드
private static 클래스 singleton = new 클래스();

//생성자
ptrivate 클래스() {}

//정적 메소드
static 클래스 getInstance(){
return singleton;
}
}

-->이게 싱글톤을 만드는 코드야

 

외부에서 객체를 얻는 유일한 방법은 

getInstance()메소드를 호출하는 방법이야

요 메소드는 단 하나의 객체만 리턴하기 때문에 아래 코드에서 변수1과 변수2는 

동일한 객체를 참조하는거지

 

클래스 변수1 = 클래스.getInstance();
클래스 변수2 = 클래스.getInstance();
package sec02.exam01;

public class Singleton {
	private static Singleton singleton = new Singleton();
	
	private Singleton() {}
	
	static Singleton getInstance() {
		return singleton;
	}
}


//싱글톤
package sec02.exam01;

public class SingleTonExample {

	public static void main(String[] args) {
		
		Singleton obj1 = Singleton.getInstance();
		Singleton obj2 = Singleton.getInstance();
		
		if(obj1 == obj2) {
			System.out.println("같은 singleton 객체입니다");
		}else {
			System.out.println("다른 Singleton 객체입니다");
		}

	}

}

 

728x90
Comments