시소당
보통 객체를 생성할 시 new를 사용해서 객체 생성을 하고 있습니다.
그니깐요..
public class A(){
.....
B b = new B();
b.~;
}
public class B(){
public B(){
}
}
이런식으로 B 클래스를 생성하잖아요..
근데 getInstance를 사용해서 구현하시는 분들이 있더군요..
public class A(){
B b = null;
b = B.getInstance();
}
public class B(){
protected static B instance = null;
public B(){
instance = this;
}
public static B getInstance() {
if (instance == null) {
instance = new B();
}
return instance;
}
}
----------설명-------------
프로그래밍 디자인 패턴중 싱글턴패턴이 이러한 방법으로 쓰는 것인데
해당 클래스의 인스턴스를 여기저기 다른 클래스에서 새롭게 인스턴스를
만들지 못하고 하나의 인스턴스만 가지고 공유해서 쓰기 위해서
이러한 방법을 씁니다.
싱글턴 클래스로 쓰는 것들은 보통 생성자를 public 이 아닌 private 으로 선언해서
다른 클래스에서 이 클래스의 인스턴스를 new 를 통해서 생성하지 못하게 하고
항상 getInstance() 함수를 통해서 인스턴스를 갖도록 제한을 하죠.
싱글턴 패턴은 유용하게 많이 쓰이는 것이므로 알아두시면 편리합니다.