Singleton模式的主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
Singleton模式通常有两种方式。
第一种形式:定义一个类,它的构造函数属于private的,它有一个static的private的该类变量,在类初始化时实例化,通过一个pulbic的getInstance方法获取对对象的引用,继而调用其中的方法。
public class Singleton{
privateSingleton(){
//在直接内部定义自己一个实例,是不是很奇怪?
//注意,这是private,只供内部调用
privatestatic Singleton instance = new Singleton();
publicstatic Singleton getInstance(){
returninstance;
}
}
}
第二种形式:
public class Singleton{
private staticSingleton instance = null;
public staticsynchronized Singleton getInstance(){
//这种方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率
if(instance==null)
instance= new Singleton();
returninstance;
}
}