单例模式之关键点总结

286 阅读1分钟

关键点

  • 构造函数私有化
  • 提供获取实例的静态方法

概念

系统中只允许一个实例存在

饿汉式

public class Singleton{
    private static final Singleton INSTANCE = new Singleton();
    private Singelton(){}
    public static Singleton getInstance(){
        retrun INSTANCE;
    }
}

懒汉式

public class Singleton{
    //多线程问题
    private static volatile Singleton instance;
    private Singleton(){}
    public static Singleton getInstance(){
        if(instance == null){
            synhronized(Singleton.class){
                //需要做双重检查
                if(instance == null){
                   instance = new Singleton(); 
                }
            }
        }
        return instance;
    }
}