싱글톤 패턴은 객체의 인스턴스가 단 하나만 생성되고 해당 인스턴스를 공통으로 사용하는 것
입니다.
public class SingleObj{
private static SingleObj instance;
private SingleObj()
public static SingleObj getInstance(){
if(singleObj == null){
singleObj = new SingleObj();
}
return singleObj;
}
}
언어 레벨 싱글톤에서는 생성자가 private이라 상속 이불가능하고 테스트가 어렵다는 등의 단점이 있습니다.
그렇기 때문에 안티패턴으로 불리면서 객체지향에 위반되는 사례가 많습니다.
하지만, 스프링 컨테이너의 프레임워크 도움을 받게 된다면, 이러한 문제를 해결해 줄 수 있습니다.
public class SingletonObj{
}
스프링 컨테이너에서는 Reflection
API를 이용해서 인스턴스를 자동으로 생성해주기 때문에 언어 레벨에서 필요한 private 생성자 등이 필요없게됩니다.
https://www.youtube.com/watch?v=lJES5TQTTWE