Когда Синглтон не будет работать как Синглтон? [Дубликат]

Possible Duplicate:
cracking singleton with other ways

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

 user79638826 июл. 2012 г., 09:03
Можете ли вы уточнить свой вопрос?
 aioobe26 июл. 2012 г., 09:03
Синглтон не будет работать как синглтон в тот момент, когда вы создадите два его экземпляра.
 Mat26 июл. 2012 г., 09:03
Это было бы, когда это не правильно написано. У вас есть конкретный пример, который вы хотели бы объяснить?
 Rajesh J Advani26 июл. 2012 г., 09:07
Синглтоны в Java могут быть реализованы разными способами. Добавьте подробности о том, на какую именно реализацию вы ссылаетесь.
 Akhi26 июл. 2012 г., 09:04
Синглтон не будет синглтоном, если он не работает как синглтон. :)

Ответы на вопрос(5)

public class BadSingleton
{
    private BadSingleton()
    {
    }

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

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

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

солнце сайт автора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
 21 апр. 2016 г., 20:56
Ссылка, предоставленная @amicngh, похоже, изменилась с тех пор, как Oracle стала владельцем Java. Я считаю, что новая ссылкаoracle.com/technetwork/articles/java/singleton-1577166.html

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

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

Ваш ответ на вопрос