简介

介绍使用枚举的方式创建单例, 其他方式可以参考单例模式

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

/**
* 使用枚举单例
*
* @author liuzhihang
* @date 2018/8/17 17:34
*/
public class SingletonPattern {

private SingletonPattern() {
}

public static SingletonPattern getInstance() {
return SingleEnum.INSTANCE.getSingletonPattern();
}


private enum SingleEnum {

/**
* 单例
*/
INSTANCE;

private SingletonPattern singletonPattern;

SingleEnum() {
this.singletonPattern = new SingletonPattern();
}

public SingletonPattern getSingletonPattern() {
return singletonPattern;
}
}

}

优点

1.比双重锁检查相对简洁
2.线程安全
3.自动处理序列化
4.防止反射