2.2.1 单例模式 : 懒加载的单例(懒汉)(线程不安全)
必须条件
和2.1中的简单单例模式基本一致 修改如下: I.成员静态变量将不会创建实例(去掉new Singleton())
II.类的初始化由static{…} 迁移到public static Singleton {…} 中执行 III.在public
static Singleton {…} 进行判空操作,如果不为null,就新建一个
注意:
线程不安全
举例:
package demo.spring.boot.demospringboot;
public class Singleton {
private String value;
/**
* 必须是静态的,否则必须Client实例化才有
*/
private static Singleton singleton;
/**
* 构造方法,private -> Client无法创建实例
*/
private Singleton() {
}
/**
* 对外暴露的访问唯一实例的接口
* 只能是static的,因为Client无法创建实例
* 现在是懒加载模式 -> 先判断实例是否为null,为null才会新建
*
* @return
*/
public static Singleton getSingleton() {
if(null == singleton){
singleton = new Singleton();
singleton.value = "这个是懒加载单例";
}
return singleton;
}
public String getValue() {
return value;
}
}