Sobes.tech
Junior — Middle

Singleton ob'ektini serializatsiya qilingan formatga va qaytib o'tkazish jarayonini qanday amalga oshirish mumkin?

sobes.tech AI

AIdan javob

Android (yoki Java) da Singleton ob'ektini serializatsiya qilish va deserializatsiya qilish uchun, deserializatsiya vaqtida yangi nusxa yaratilmasligini, mavjud Singleton nusxasining qaytarilishini ta'minlash kerak.

Asosiy bosqichlar:

  1. Singleton sinfi Serializable interfeysini amalga oshirishi kerak.
  2. Sinfda, deserializatsiya vaqtida mavjud Singleton nusxasini qaytaradigan readResolve() metodini aniqlash kerak.

Misol:

public class MySingleton implements Serializable {
    private static final long serialVersionUID = 1L;

    private static final MySingleton INSTANCE = new MySingleton();

    private MySingleton() {
        // maxfiy konstruktor
    }

    public static MySingleton getInstance() {
        return INSTANCE;
    }

    // Deserializatsiya vaqtida aynan shu nusxani qaytarishni ta'minlaydigan metod
    private Object readResolve() throws ObjectStreamException {
        return INSTANCE;
    }
}

Shu tarzda, serializatsiya qilishda obyekt saqlanadi, va deserializatsiya vaqtida readResolve() mavjud nusxani qaytaradi, Singleton naqshini saqlab qoladi.