단 하나의 객체만 사용하고 싶을 때 싱글톤 패턴을 사용한다.
생성자를 private으로 접근을 제한해 외부에서 new 연산자로 생성자를 호출 할 수 없도록 해야 한다.
//싱글톤 패턴
public class Dress(){
//드레스는 한 벌만 있고 : static
//디자이너만 만들 수 있다. : private
private static Dress dress = new Dress();
//다른 사람이 똑같은 옷을 만들 수 없도록 한다.
//외부에서 생성자를 만들 수 없게 한다. : private
private Dress(){ };
//디자이너 외의 사람들이 옷을 볼 수 있는 유일한 접근 : public
public static Dress showDress(){
return dress;
}
}
//dress1,2를 통해 같은 Dress객체를 사용하는지 확인
public class FashionShow {
public static void main(String[] args) {
Dress dress1 = Dress.showDress();
Dress dress2 = Dress.showDress();
//dress3 : Dress 객체를 생성할 수 없음
//Dress dress3 = new Dress();
if(dress1 == dress2) {
System.out.println("같은 드레스 입니다.");
}else {
System.out.println("다른 드레스 입니다.");
}
//결과 : 같은 드레스 입니다.
}
}