用工厂方法模式实现单例模式的功能有什么好处?

枫凌渡 发布于 2011/06/09 09:55
阅读 1K+
收藏 0
//负责生成单例的工厂类
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() {

}
}

上面提供了工厂方法模式和单例模式的两种实现,感觉两者都是生成了一个对象,然后提供外部访问,保证内存中的对象唯一。不知道使用工厂方法模式的实现有啥优势?请教下大家。
加载中
0
Andre.Z
Andre.Z

工厂模式,顾名思义,是你给它个参照,它就可以给回你需要的对象。楼主的工厂方法好像不能称之为工厂。

工厂模式来管理单例,不需要每个单例类都写上一堆重复的代码,方便管理。

http://www.oschina.net/code/snippet_140947_4669

你可以看看

枫凌渡
枫凌渡
参考了。。谢谢。。
0
Andre.Z
Andre.Z

那个啥工厂类怎么看怎么像是毫无意义。

这个厂子也太小了,只生产一个东西就停产了。。。

0
dy810810
dy810810
方便以后扩展生产其它东西。
返回顶部
顶部