Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 一般Singleton模式通常有几种形式:
第一种模式:定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。只要初始化就创建了一个静态的实例(饱汉)
public class Singleton{
//注意这是private 只供内部调用
private Singleton(){}
//在自己内部定义自己一个实例
private static final Singleton singleton=new Singleton();
//公有方法访问得到实例 Singleton singleton=Singleton.getInstance();即可的得到实例
public static Singleton getInstance(){
return singleton;
}
}
第二种模式:
public class Singleton{
private static Singleton singleton = null;
//使用时才生成实例
public static synchronized Singleton getInstance() {
if (null == singleton) {
singleton = new Singleton();
}
return singleton;
}
}
第三种模式:枚举
public enum Singleton{
ONE;
}