Junior — Middle
Hogyan valósítható meg a Singleton objektum serializált formátumba való átalakítása és visszaalakítása?
sobes.tech MI
Válasz az MI-től
Az Android (vagy Java) környezetben a Singleton objektum serializálásához és deserializálásához biztosítani kell, hogy deserializáláskor ne hozzon létre új példányt, hanem a meglévő Singleton példányt adja vissza.
Fő lépések:
- A Singleton osztálynak implementálnia kell a
Serializableinterfészt. - Az osztályban meg kell határozni a
readResolve()metódust, amely deserializáláskor visszaadja a meglévő Singleton példányt.
Példa:
public class MySingleton implements Serializable {
private static final long serialVersionUID = 1L;
private static final MySingleton INSTANCE = new MySingleton();
private MySingleton() {
// privát konstruktor
}
public static MySingleton getInstance() {
return INSTANCE;
}
// Metódus, amely garantálja, hogy deserializáláskor ugyanaz a példány kerül visszaadásra
private Object readResolve() throws ObjectStreamException {
return INSTANCE;
}
}
Így, a serializálás során az objektum elmentésre kerül, és a deserializáláskor a readResolve() visszaadja a már létező példányt, megőrizve a Singleton mintát.