인스턴스를 하나만 가지는 클래스, 해당 인스턴스는 전역적으로 접근이 가능함.
어떨때 사용하면 좋은가?
프로그램은 종종 단일 인스턴스 객체를 필요로 한다.
예를 들어, 프로그램에서 로그를 찍는다거나..하나뿐인 DB를 사용할 필요가 있다면, 해당 객체의 인스턴스는 프로그램에서 여러번 생성되어야 할 필요는 없지 않을까?(개인적인 생각)
장점 및 단점
- 객체가 한번만 생성됨. 전역 리소스 관리에는 필수적이다. 그리고 전역 변수를 사용하는 것 보다 좋은 방법이다.
- 무리해서 남용하기 쉬우나, 그것은 피하자.
생성자는 감추자, 그리고 메소드는 static으로...
public static singleton getInstance()
{
if( instance != null)
{
return instance;
}
else
{
instance = new singleton();
}
}
이렇게.. instance를 가져오는 시점에 없으면 생성하도록 하고, 생성자는 외부에 노출시키지 않도록..
(정확하게 알고 있는 것인지는 조금 자신은 없지만.. )
반응형
댓글