1、什么是 单例模式?
确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例。
2、单例模式三个重要特点
①一个类只能有一个实例
②必须自行创建这个实例
③必须向整个系统提供这个实例
3、饿汉单例模式和赖汉单例模式
①饿汉单例
当类被加载,静态变量instance会被初始化,此时类的私有化构造函数会被调用,单例的唯一实例将被创建
package com.xu.factory.singleton;
/**
* 单例饿汉模式
* 当类被加载时,静态变量instance会被初始化,此时类的私有构造函数会被调用,唯一的单例会被创建
*
* @author admin
*/
public class EagerSingleTon {
/**
* 静态变量优先加载,唯一实例
*/
private static final EagerSingleTon INSTANCE = new EagerSingleTon();
public EagerSingleTon() {
}
public static EagerSingleTon getInstance() {
return INSTANCE;
}
}
②赖汉式单例在第一次被引用时将自己实例化,在被加载时不会将自己实例化