在目前的spring家族中,bean的默认生命周期就是单例模式,使用起来极为简单。但是脱离了spring框架后,如果需要一个单例还是需要自己实现的,单例模式一共有5种且分两类:饿汉式和懒汉式。这里只提供两种工业上常用的实现方式。
/**
* 使用枚举的单例-推荐使用
* @author cosmozhu
* @mail zhuchao1103@gmail.com
* @site https://www.cosmozhu.fun
*/
public enum Singleton1 {
INSTANCE;
public void sayHello() {
System.out.println("hello!");
}
}
/**
* 双重锁检查法创建的实例
* @author cosmozhu
* @mail zhuchao1103@gmail.com
* @site https://www.cosmozhu.fun
*/
public class Singleton2 {
private Singleton2() {
};
static Singleton2 instance;
public static Singleton2 getInstance() {
if (null == instance) {
synchronized (Singleton2.class) {
if (null == instance) {
instance = new Singleton2();
}
}
}
return instance;
}
}
作者:cosmozhu --90后的老父亲,专注于保护地球的程序员
欢迎转载,转载时请注明出处。