81,114
社区成员
发帖
与我相关
我的任务
分享import java.util.HashMap;
public class RegSingleton {
private static HashMap rss = new HashMap();
static {
RegSingleton regSingleton = new RegSingleton();
rss.put(regSingleton.getClass().getName(), regSingleton);
}
//保护的默认构造器
protected RegSingleton() {
}
//静态工厂方法,返还此类惟一的实例
public static RegSingleton getInstance(String name) {
if (name == null)
name = RegSingleton.class.getName();
if (rss.get(name) == null) {
try {
rss.put(name, Class.forName(name).newInstance());
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return (RegSingleton) rss.get(name);
}
}public class RegSingletonChild extends RegSingleton {
public RegSingletonChild() {}
/**
* 静态工厂方法
*/
static public RegSingletonChild getInstance(){
return (RegSingletonChild)
RegSingleton.getInstance(
"com.javapatterns.singleton.demos.RegSingletonChild" );
}
/**
* 一个示意性的商业方法
*/
public String about() {
return "Hello, I am RegSingletonChild.";
}
}
import java.util.HashMap;
public class RegManager {
private static HashMap rss = new HashMap();
static {
RegManager regSingleton = new RegManager();
rss.put(regSingleton.getClass().getName(), regSingleton);
}
private RegManager(){}
// 静态工厂方法,返还此类惟一的实例
public static RegManager getInstance(String name) {
if (name == null)
name = RegManager.class.getName();
if (rss.get(name) == null) {
try {
rss.put(name, Class.forName(name).newInstance());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return (RegManager) rss.get(name);
}
}