8

枚举被认为是单例的最佳方式,原因之一是它隐式继承Serializable

但是枚举如何防止单例的反序列化问题?

4

2 回答 2

7

序列化机制以一种特殊的、特定的方式处理它们。但是传统的单例可以通过定义一个readResolve()返回唯一实例的方法来很好地反序列化。有关示例,请参见http://www.oodesign.com/singleton-pattern.html 。

于 2012-11-04T15:41:03.903 回答
1

将序列化作为将枚举用于单例的参数是无稽之谈。

如果枚举单例是有状态的,则在序列化/反序列化期间状态会丢失。

如果单例是无国籍的,谁在乎它的身份?

于 2012-11-04T17:39:46.203 回答