Вопрос по singleton, java – Когда Синглтон не будет работать как Синглтон? [Дубликат]

0

Possible Duplicate:
cracking singleton with other ways

Может кто-нибудь, пожалуйста, скажите мне, когдаSingleton не будет работать какSingleton?

Синглтон не будет синглтоном, если он не работает как синглтон. :) Akhi
Синглтоны в Java могут быть реализованы разными способами. Добавьте подробности о том, на какую именно реализацию вы ссылаетесь. Rajesh J Advani
Можете ли вы уточнить свой вопрос? user796388
Синглтон не будет работать как синглтон в тот момент, когда вы создадите два его экземпляра. aioobe
Это было бы, когда это не правильно написано. У вас есть конкретный пример, который вы хотели бы объяснить? Mat

Ваш Ответ

5   ответов
0

он не останется единичным при использовании таких способов, как клонирование, десериализация и т. Д.

9

солнце сайт автораJoshua Fox, Пожалуйста, пройдите это.

Ниже приведены некоторые из них сценарий, когда вашSingleton не ведет себя как.

Multiple Singletons in Two or More Virtual Machines Multiple Singletons Simultaneously Loaded by Different Class Loaders Singleton Classes Destroyed by Garbage Collection, then Reloaded Purposely Reloaded Singleton Classes Copies of a Singleton Object that has Undergone Serialization and Deserialization
Ссылка, предоставленная @amicngh, похоже, изменилась с тех пор, как Oracle стала владельцем Java. Я считаю, что новая ссылкаoracle.com/technetwork/articles/java/singleton-1577166.html
-1

public class BadSingleton
{
    private BadSingleton()
    {
    }

    public BadSingleton getInstance()
    {
        return new BadSingleton();
    }
}

Выше вернется новый экземплярBadSingleton класс каждый раз, когдаgetInstance() метод называется. Это позволит создавать различные экземпляры класса, который не соответствует назначению шаблона проектирования Singleton.

Подобный сценарий также может быть достигнут с помощью нескольких загрузчиков классов (даже если Singleton написан правильно).

1

если данный класс загружен несколькими загрузчиками классов. Поскольку один класс может существовать (или может быть загружен) в нескольких загрузчиках классов, вполне возможно иметь «множественный» тип. случаи "предположительно" синглтон-класс для данного экземпляра JVM. Но это довольно редкий случай, и он случается не часто. :)

Похожие вопросы