Singleton单例模式主要作用是保证在Java应用程序中,一个类只有一个实例存在。
一般Singleton单例模式有以下几种形式:
第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
public class Singleton {
//私有的构造函数
private Singleton(){}
//在自己内部定义一个自己的对象,这里是private只供内部调用
private static Singleton instance=new Singleton();
//提供一个供外部访问这个类的静态方法,可通过类名直接访问
public static Singleton getInstance(){
return instance;
}
}
第二种形式:
public class Singleton2 {
private static Singleton2 instance=null;
public static synchronized Singleton2 getInstance(){
//不用每次都进行生成对象,只是第一次,效率比较高
if(instance==null){
instance=new Singleton2();
}
return instance;
}
}
其他形式:定义一个类,它的构造函数为private的,所有方法为static的