public with sharing class SingleObj {
private static SingleObj singleObj = null;
private SingleObj(){ }
public static SingleObj getInstance(){
if( singleObj == null ){
singleObj = new SingleObj();
}
return singleObj;
}
}
싱글톤
- 하나의 인스턴스만을 생성해 클라이언트에게 동일한 인스턴스를 반환하는 작업을 수행한다.
장점
- 한개의 인스턴스만을 사용하기 때문에 메모리 낭비를 방지할 수 있다.
- 속도가 빠르다
단점
- 멀티스레드 환경에서는 여러개의 instance를 생성할 수 있음
-> 해결방법 : private static SingleObj singleObj = new SingleObj();
- 또한, 멀티스레드의 경우 값이 일관되지 않을 수 있다.
고려할 사항
- 인스턴스가 한 개만 존재해야 하는가?
- 동시성 문제가 발생하지 않는가?