单例模式

来源:互联网 发布:免费淘宝模板代码 编辑:程序博客网 时间:2024/06/16 19:09

1.懒汉模式 

public class Singleton{

private static Singleton instance;
private Singleton(){}
public static synchronized Singleton getInstance(){
if(instance==null){
instance = new Singleton();
}
return instance;
}

}

2.双重校验锁 Double Check Lock(DCL模式)

public class Singleton{
private volatile static Singleton sInstance = null;
private Singleton(){};
public static Singleton getInstance(){
if(sInstance==null){
Synchronized(Singleton.class){
if(sInstance==null){
sInstance = new Singleton();
}
}
}
return sInstance;
}
}

3.静态内部类单例模式

public class Singleton{
private Singleton(){}
public static Singleton getInstance(){
return SingletonHolder.INSTANCE;
}
private static class SingletonHolder{
private static final Singleton INSTANCE = new Singleton();
}
}

 3这种模式不但能够确保线程安全,还能够保证单例的唯一性,同时也延迟了单例的实例化,推荐模式


原创粉丝点击