《HEAD FIRST 设计模式》设计模式最终版:
public class Singleton
{
private volatile static Singleton singleton;
private Singleton(){};//最关键的,将构造方法申明为private
public static Singleton getInstance(){
if(singleton == null){//只在第一次执行,这样不会影响效率
synchronized(Singleton.class){
if(singleton == null){//再一次判断,如果第一次同时有多个线程进来的话,可防止重复创建
singleton = new Singleton();
}
}
}
return singleton;
}
}
public class Singleton
{
private volatile static Singleton singleton;
private Singleton(){};//最关键的,将构造方法申明为private
public static Singleton getInstance(){
if(singleton == null){//只在第一次执行,这样不会影响效率
synchronized(Singleton.class){
if(singleton == null){//再一次判断,如果第一次同时有多个线程进来的话,可防止重复创建
singleton = new Singleton();
}
}
}
return singleton;
}
}