2.1 单例模式 : 最简单的单例(饿汉)(线程安全)
I.需要构造方法private -> 防止Client创建实例
II.内部提供static的变量 -> !static 的变量,Client由于private无法创建(可以采用public static … 来暴露唯一获取的接口)
III.变量的初始化使用static {…} 来初始化
举例:
package demo.spring.boot.demospringboot;
public class Singleton {
private String value;
/**
* 必须是静态的,否则必须Client实例化才有
*/
private static Singleton singleton = new Singleton();
static {
/**
* static code{}
* 用于初始化数据
*/
singleton.value = "这个是单例";
}
/**
* 构造方法,private -> Client无法创建实例
*/
private Singleton() {
}
/**
* 对外暴露的访问唯一实例的接口
* 只能是static的,因为Client无法创建实例
*
* @return
*/
public static Singleton getSingleton() {
return singleton;
}
public String getValue() {
return value;
}
}