Перечисления, синглтоны и десериализация
Перечисления считаются лучшим способом для синглетонов, и одна из причин этого заключается в том, что они неявно наследуют Serializable
,
Но как перечисления предотвращают проблему десериализации синглетонов?
2 ответа
Решение
Механизм сериализации обрабатывает их особым образом. Но традиционные синглтоны могут быть десериализованы нормально, определив readResolve()
метод, который возвращает уникальный экземпляр. См. http://www.oodesign.com/singleton-pattern.html для примера.
Сериализация в качестве аргумента для использования enum для singleton - это нонсенс.
Если синглтон enum находится в состоянии, состояние теряется во время сериализации / десериализации.
Если синглтон не имеет гражданства, кого волнует его идентичность?