使用枚举类型实现单例
2019-02-14 本文已影响0人
宋雾代
从Java 1.5 发行版本起,实现Singleton可以通过编写一个包含单个元素的枚举类型来实现:
示例如下:
public enum Singleton {
INSTANCE;
public void print(){
System.out.println("HAHA");
}
}
public class Main {
public static void main(String[] args) {
Singleton.INSTANCE.print();
}
}
这种方法在功能上与公有域相近,但是其更加简洁,同时无偿提供了序列化机制,绝对意义上防止了多次实例化,即使在面对复杂的序列化和反射攻击的时候。