/**
* 单例模式:在JAVA应用程序中,一个类只有一个实例存在
*/
import javax.swing.JOptionPane;
/**
*:定义一个类,
* 声明该类的instance对象,
* 它的构造函数是private,
* 它有一个静态的私有的该类变量,在类初始化时,
* 通过一个public的getInstance方法获取对它的引用,
* 继而调用其中的方法。
* @author Will
*
*/
public class Singleton {
private static Singleton instance = null;
/**
* 注意:考虑程序安全访问问题,
* private构造函数只供内部类调用,
* 外部类不允许调用
*/

private Singleton() {}
public static synchronized Singleton getInstance() {
//提示:当instance对象重复被调用时,可以提高程序时间和空间上的效率

if(instance == null){
instance = new Singleton();
}
return instance;//提示:返回instance对象的引用
}
public void PrintTest() {
JOptionPane.showMessageDialog(null, "返回instance对象的引用", "警告第二种Singleton", JOptionPane.ERROR_MESSAGE);
}
}