싱글톤 패턴 간단 예제
import java.util.HashMap;
class Singleton {
private static HashMap map = new HashMap();
//private static Logger logger = Logger.getRootLogger();
protected Singleton() {
// Exists only to thwart instantiation
}
public static synchronized Singleton getInstance(String classname) {
Singleton singleton = (Singleton)map.get(classname);
if(singleton != null) {
System.out.println("got singleton from map: " + singleton);
return singleton;
}
try {
singleton = (Singleton)Class.forName(classname).newInstance();
}
catch(ClassNotFoundException cnf) {
System.out.println("Couldn't find class " + classname);
}
catch(InstantiationException ie) {
System.out.println(
"Couldn't instantiate an object of type " + classname);
}
catch(IllegalAccessException ia) {
System.out.println("Couldn't access class " + classname);
}
map.put(classname, singleton);
System.out.println("created singleton: " + singleton);
return singleton;
}
}
class SingletonTest {
public static void main(String[] args) {
}
}