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