//负责生成单例的工厂类
public class SingletonFactory {
private static Singleton singleton;
static {
try {
Class c1 = Class.forName(Singleton.class.getName());
// 获得无参构造
Constructor constructor = c1.getDeclaredConstructor();
// 设置无参构造是可访问的
constructor.setAccessible(true);
// 产生一个实例对象。
singleton = (Singleton) constructor.newInstance();
} catch (Exception e) {
// 异常处理
}
}
public static Singleton getSingleton() {
return singleton;
}
}
//单例模式通用代码
public class SingletonA {
private static final SingletonA singletonA = new SingletonA();
// 限制产生多个对象
private SingletonA() {
}
// 通过该方法获得实例对象
public static SingletonA inStance() {
return singletonA;
}
// 类中其他方法,尽量是static
public static void doSomething() {
}
}
上面提供了工厂方法模式和单例模式的两种实现,感觉两者都是生成了一个对象,然后提供外部访问,保证内存中的对象唯一。不知道使用工厂方法模式的实现有啥优势?请教下大家。
工厂模式,顾名思义,是你给它个参照,它就可以给回你需要的对象。楼主的工厂方法好像不能称之为工厂。
工厂模式来管理单例,不需要每个单例类都写上一堆重复的代码,方便管理。
http://www.oschina.net/code/snippet_140947_4669
你可以看看
那个啥工厂类怎么看怎么像是毫无意义。
这个厂子也太小了,只生产一个东西就停产了。。。