单例设计模式
Singleton
在Java中指单例设计模式,是软件开发中最常用的设计模式之一
单例:唯一实例
某个类在项目里只有一个实例对象,并可被获取和使用的代码模式
常见形式
饿汉式:直接创建对象(不存在线程安全问题)
/*
* 1. 构造器私有化
* 2. 自行创建,使用静态变量保存
* 3.向外提供实例
*/
public class Singleton {
public static final Singleton EXAMPLE= new Singleton();
private Singleton() {
}
}
懒汉式:延迟创建对象(存在线程安全问题)
/*
* 1. 构造器私有化
* 2. 静态变量保存该唯一实例
* 3. 提供静态方法,获取这个实例对象
*/
public class Singleton {
private static Singleton example;
private Singleton() {
}
public static Singleton getExample() {
if(example == null) {
example = new Singleton();
}
return example;
}
}
懒汉式:延迟创建对象(解决线程安全问题)
/*
* 1. 构造器私有化
* 2. 当内部类初始化加载时,创建实例对象
* 3. 静态内部类不会随着外部类加载而初始化,它需要单独加载和初始化
*/
public class Singleton {
private Singleton() {
}
private static class Inner{
private static final Singleton EXAMPLE = new Singleton();
}
public static Singleton getExample() {
return Inner.EXAMPLE;
}
}