从 Java 5 开始,据说创建单例的最佳方法是使用单元素枚举类型。
例子:
public enum SuperSingleton implements Zooma{
INSTANCE;
/**
*/
public void fightTheBattle(){
System.out.println("I am fighting the battle!!!");
}
@Override
public void runningWild() {
//This is method implemented from the Zooma interface.
}
}
根据 Joshua Bloch 的说法,单元素枚举类型单例是;
- 更简洁
- 免费提供序列化机制
- 并提供了针对多重实例化的铁证。
我可以看到它是如何更简洁的,以及它是如何提供针对多重实例化的铁定的, 但它是如何免费提供序列化机制的呢?
这是单例通过枚举获得的东西吗?