黑马程序员技术交流社区
标题:
银行调度系统中的单例问题
[打印本页]
作者:
侯丛政
时间:
2013-2-27 16:12
标题:
银行调度系统中的单例问题
private NumberMachine(){
}
public static NumberMachine getInstance(){
return instance;
}
private static NumberMachine instance = new NumberMachine();
换成如下代码会有什么不妥?
// public static NumberMachine getInstance(){
// return new NumberMachine();
// }
张老师银行业务调度系统中NumberMachine要设计成单例的, 为什么不能在方法里面获得NumberMachine对象呢?
作者:
李挺
时间:
2013-2-27 16:25
如果换成你的那个 每次调用getInstance()方法的时候,就会返回一个新的NumberMachine对象
这就不是单例设计模式了
作者:
张世钦
时间:
2013-2-27 18:07
单例要保证对象的唯一性 如果你改成你那样的 每次调用方法就会返回一个新对象,也就没什么单例可言了
作者:
Benwolf0818
时间:
2013-2-27 21:41
单例模式是一种常用的软件设计模式,在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。
实现单例模式的思路是:一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称);当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用;同时我们还将该类的构造函数定义为私有方法,这样其他处的代码就无法通过调用该类的构造函数来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2