单例设计模式

2016-10-24  本文已影响0人  最美时光在路上
  1. 饿汉式
public class Singleton{
    public static final Singleton instance = new Singleton();
    private Singleton(){}
    public static Singleton getInstance(){
        return instance;
    }
}
  1. 懒汉式之方法同步
public class Singleton{
    public static final Singleton instance = null;
    private Singleton(){}
    public static synchronized Singleton getInstance(){
        if(instance == null){
            instance = new Singleton();
        }
        return instance; 
    }
}
  1. 懒汉式之双重检查
public class Singleton{
    public static final Singleton instance = null;
    private Singleton(){}
    public static  Singleton getInstance(){
        if(instance==null){
            synchronized(Singleton.class){
                if(instance==null){
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
}
  1. 静态内部类
public class Singleton {    
    private static class SingletonHolder {    
       private static final Singleton INSTANCE = new Singleton();    
    }    
    private Singleton (){}    
    public static final Singleton getInstance() {    
       return SingletonHolder.INSTANCE;    
    }    
} 
上一篇 下一篇

猜你喜欢

热点阅读