Junior — Middle
Singleton объектин сериалдаштырылган форматка жана кайра кайтаруу процесси кандай ишке ашырылат?
sobes.tech AI
AIден жооп
Android (жеки Java) ичинде Singleton объектисин сериалдаштыруу жана десериалдаштыруу учурунда, десериалдаштыруу учурунда жаңы нускаманы түзбөстөн, бар болгон Singleton нускамасын кайтаруу керек.
Негизги кадамдар:
- Singleton классы
Serializableинтерфейсин ишке ашырышы керек. - Класста, десериалдаштыруу учурунда бар болгон Singleton нускамасын кайтарган
readResolve()методу аныкталышы керек.
Мисал:
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 паттернин сактап калат.