싱글톤 패턴이란? 자바의 디자인 패턴 중 일반적으로 가장 많이 알려진 패턴으로서 하나의 인스턴스만을 생성하기 위한 패턴이다. 단 하나의 인스턴스만을 생성하고자 할 때 사용되는 방법이다.
public class Bank{
private static Bank b = new Bank(); // 2)
private Bank() { } // 1)
public static Bank get Bank() { // 3)
return b;
}
public String getName() {
return "xx은행";
}
} // end class
public class TestBank {
Bank b = Bank.getBank();
String name = b.getName();
}
1) 외부에서 객체를 생성하지 못하도록 생성자의 접근자를 private으로 지정한다.
2) 단 한번 생성해야 하기 때문에 자신의 클래스에서 객체 생성 코드를 사용한다. static 지정자를 사용하여 프로그램 실행시 단 한번만 생성된다.
3) 외부에서 객체 생성은 불가능하지만, 다른 클래스 멤버들의 접근은 허용해야 한다. 따라서 2번에서 생성한 객체의 참조변수를 static 메서드를 이용해서 외부에 돌려준다.
static 메서드를 사용하는 이유는 객체생성 없이 사용할 수 있기 때문이다.
4) 외부에서는 클래스.메서드
로 참조값을 얻어서 다른 멤버들을 접근할 수 있다.
// 특정 클래스의 참조값 얻을 때
클래스명 변수 = 클래스명.메서드();
// ex
Calendar cal = Calendar.getInstance();