Enums, Singletons und Deserialization

8

Aufzählungen werden als beste Methode für Singletons betrachtet, und einer der Gründe dafür ist, dass sie implizit Serializable erbt.

Aber wie Enums verhindert De-Serialisierung Problem von Singletons?

    
a Learner 04.11.2012, 15:01
quelle

2 Antworten

7

Der Serialisierungsmechanismus verarbeitet sie in einem speziellen spezifischer Weg . Traditionelle Singles lassen sich jedoch leicht deserialisieren, indem Sie eine readResolve() -Methode definieren, die die eindeutige Instanz zurückgibt. Ein Beispiel finden Sie Ссылка .

    
JB Nizet 04.11.2012, 15:41
quelle
1

Serialisierung als Argument für die Verwendung von enum für Singleton ist Unsinn.

Wenn das enum singleton Stateful ist, geht der Zustand während der Serialisierung / Deserialisierung verloren.

Wenn der Singleton staatenlos ist, wen interessiert seine Identität?

    
irreputable 04.11.2012 17:39
quelle