Maison > Java > JavaBase > Le code explique le modèle singleton de Java

Le code explique le modèle singleton de Java

angryTom
Libérer: 2019-11-26 15:45:37
avant
1939 Les gens l'ont consulté

Le code explique le modèle singleton de Java

Le modèle singleton peut être considéré comme l'un des modèles de conception les plus couramment utilisés. Sa fonction principale est de garantir qu'une classe n'a qu'une seule instance et de fournir un point d'accès global pour y accéder. il, avec un contrôle strict de la méthode d'accès de l'utilisateur.

Le mode singleton est divisé en mode paresseux et mode affamé. Tout d'abord, parlons du mode affamé :

Mode affamé

Mode affamé. un peu comme avoir faim, comme une personne qui a faim depuis longtemps, donc il mangera tant que quelqu'un lui donnera quelque chose, que la nourriture soit délicieuse ou qu'il puisse la manger. Le code est le suivant :

public class Singleton {
    private static Singleton instance = new Singleton();

    private Singleton (){}

    public static Singleton getInstance() {
        return instance;
    }

}
Copier après la connexion

Tout le monde sait ce que cela signifie. C'est une méthode d'initialisation statique. L'objet est instancié dès que la classe est chargée. L'avantage est la sécurité des threads, mais l'inconvénient est qu'elle est instanciée. occupe les ressources du système à l'avance. A ce moment, le mode paresseux apparaît :

(Vidéo recommandée : Tutoriel vidéo Java)

Mode paresseux

Par rapport au mode homme affamé, qui n'est pas sélectif en matière de nourriture, le mode homme paresseux signifie manger uniquement lorsque la nourriture est portée à votre bouche, sinon vous ne bougerez pas la bouche, peu importe votre faim. Le code est le suivant :

public class Singleton{

    private static Singleton instance;

    private Singleton(){}

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}
Copier après la connexion

Cependant, lorsque plusieurs threads appellent la méthode getInstance() en même temps, il est possible de créer plusieurs instances, donc cette version du thread n'est pas sécurisée, donc la version suivante est créé :

public class Singleton {

    private static Singleton instance;

    private Singleton (){}

    public static Singleton getInstance() {
        if (instance == null) {  
            synchronized (Singleton .class) {  
            if (instance == null) {  
                instance = new Singleton ();  
                }  
            }  
        } 
        return instance;
    }
}
Copier après la connexion

Utilisez la méthode de double verrouillage pour garantir que lorsque instance == null, plusieurs threads peuvent passer le premier niveau de jugement lors de l'appel de la méthode getInstance().

Dans des circonstances normales, le mode singleton de Hungry Han peut répondre à la plupart des besoins. C'est la situation de base du mode singleton.

Cet article provient du site Web php chinois, colonne tutoriel Java, bienvenue pour apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal