Рассмотрим, что у меня есть класс Singleton, определенный следующим образом.
public class MySingleton implements Serializable{
private static MySingleton myInstance;
private MySingleton(){
}
static{
myInstance =new MySingleton();
}
public static MySingleton getInstance(){
return MySingleton.myInstance;
}
}
Вышеприведенное определение по мне удовлетворяет требованиям Singleton. Добавляется только добавленное поведение: класс реализует сериализуемый интерфейс.
Если другой класс X получает экземпляр синтаксиса и записывает его в файл, а в более поздней точке десериализует его для получения другого экземпляра, у нас есть два экземпляра, которые противоречат принципу Singleton.
Как я могу избежать этого или я ошибаюсь в самом определении.