Сериализация на единични класове по време на RMI комуникация

Докато преминавах през обяснението на метода readResolve, много препратки обясняват, че този метод ще бъде полезен за гарантиране на свойството singleton, когато класът singleton се десериализира, докато обектът от този клас се сериализира и прехвърля през RMI.

Сега въпросът ми е, когато се осъществи RMI повикване, Singleton class Object ще бъде транспортиран през различна JVM (с различен класов зареждач), така че след десериализация ще имаме друг екземпляр на singleton клас (в различна JVM). Прав ли съм ?

И така, в контекста на RMI повикванията, каква е ползата от прилагането на метода readResolve?


person KBR    schedule 04.10.2013    source източник


Отговори (1)


Така че, ако го изпратите отново, той се преобразува в този, който вече е там. Което вероятно би било в противоречие с вашите намерения. Не се обърквайте, като използвате сингълтони в RMI.

person user207421    schedule 04.10.2013
comment
Значи искаш да кажеш, че readResolve гарантира, че свойството singleton се поддържа в една JVM? ако методът readResolve не е в този клас, всеки път, когато правим десериализация на RMI клиент, той ще създаде различен екземпляр. Прав ли съм ? - person KBR; 05.10.2013
comment
Това е което аз казах. Не обичам тази игра „така искаш да кажеш“. - person user207421; 06.10.2013