Junior — Middle
Чӣ гуна метавон раванди табдил додани объекти Singleton ба формати сериалӣ ва баргардонданро амалӣ кард?
sobes.tech AI
Ҷавоб аз AI
Барои сериалкунии ва десериалкунии объекти Singleton дар Android (ё Java), бояд таъмин карда шавад, ки дар вақти десериалкунии навъи нав эҷод нашуда, балки намунаи мавҷудаи Singleton баргардонида шавад.
Қадамҳои асосӣ:
- Класси Singleton бояд интерфейси
Serializable-ро амалӣ кунад. - Дар класа бояд методи
readResolve()-ро муайян кард, ки дар вақти десериалкунии намунаи мавҷудаи Singleton-ро баргардонад.
Масалан:
public class MySingleton implements Serializable {
private static final long serialVersionUID = 1L;
private static final MySingleton INSTANCE = new MySingleton();
private MySingleton() {
// конструктори хусусӣ
}
public static MySingleton getInstance() {
return INSTANCE;
}
// Метод, ки кафолат медиҳад, ки дар вақти десериалкунии ҳамон намуна баргардонида мешавад
private Object readResolve() throws ObjectStreamException {
return INSTANCE;
}
}
Бо ҳамин, дар вақти сериалкунии объект нигоҳ дошта мешавад, ва дар вақти десериалкунии readResolve() намунаи мавҷудаи аллакай мавҷудро бармегардонад, ки намунаи Singleton-ро нигоҳ медорад.