Quelles sont les différentes façons de briser un pattern singleton en Java

Quelles sont les différentes façons de briser un pattern singleton en Java.
Je connais une façon de dire que si nous n'avons pas synchroniser la méthode en singleton , alors nous pouvons créer plus d'une instance de la classe. Donc, l'application de la synchronisation. Est-il un moyen de briser singleton classe java.

public class Singleton {
    private static Singleton singleInstance;

    private Singleton() {
    }

    public static Singleton getSingleInstance() {
        if (singleInstance == null) {
            synchronized (Singleton.class) {
                if (singleInstance == null) {
                    singleInstance = new Singleton();
                }
            }
        }
        return singleInstance;
    }
}
en fait, ce code est incorrect, le non initialisée Singleton peut être attribué à instance unique avant que le constructeur finitions
retiré ee balise comme il n'y a rien ee spécifique sur cette question
tu veux dire private static Singleton singleInstance= new Singleton() ?
non, je veux dire que l'allocation d'un objet est stocké dans singleInstance avant l'exécution du constructeur, cela signifie qu'un autre thread peut accéder à la non initialisée singleton, ce qui peut conduire à des erreurs
Gotcha 🙂

OriginalL'auteur Harsha_2012 | 2013-12-06