创建型-单例

确保一个类只有一个实例,并提供一个全局访问点。
这个最经典的就是Spring了,在Spring中创建单例太简单了,这里不介绍Spring。

  1. 构造函数私有化
  2. 提供全局访问点

懒汉式

class Single {
	public final static Single INSTANCE = new Single();
	private Single(){}
}

饿汉式

双重检验锁

public class Single {
    private static volatile Single INSTACNE;

    private Single(){}
    
    public static Single getInstance(){
        if (INSTACNE == null){
            synchronized (Single.class){
                if (INSTACNE == null){
                    INSTACNE = new Single();
                }
            }
        }
        
        return instance;
    }
}

类占位符 (推荐)

public class Single {
    private Single(){}
    
    private static class SingleInstance{
        private final static Single INSTACNE = new Single();
    }

    public static Single getInstance(){
        return SingleInstance.INSTACNE;
    }
}
posted @ 2020-11-07 13:37  qianbuhan  阅读(41)  评论(0)    收藏  举报