기록장
싱글톤을 설명해줄게 본문
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