Maison  >  Article  >  Qu'est-ce que le modèle singleton ?

Qu'est-ce que le modèle singleton ?

Guanhui
Guanhuioriginal
2020-06-28 17:50:273199parcourir

Le modèle singleton est un modèle de conception logicielle couramment utilisé qui crée des types. La classe créée via la méthode de ce modèle n'a qu'une seule instance dans le processus actuel. Ses avantages peuvent garantir que tous les objets accèdent à l'instance unique, et réduisez la surcharge de mémoire et les performances du système.

Qu'est-ce que le modèle singleton ?

Le modèle singleton est l'une des formes les plus simples de modèles de conception. Le but de ce modèle est de faire d'un objet d'une classe la seule instance du système. Pour y parvenir, vous commencez par l’instancier côté client. Il est donc nécessaire d'utiliser un mécanisme qui permet uniquement la génération d'instances uniques de la classe d'objet, "bloquant" tout accès à l'objet que l'on souhaite générer. Utilisez des méthodes d'usine pour limiter le processus d'instanciation. Cette méthode doit être une méthode statique (méthode de classe), car il ne sert à rien qu’une instance de la classe génère une autre instance unique.

Comment implémenter le modèle singleton

Habituellement dans le langage Java, il existe deux façons de construire le modèle singleton :

  • Style paresseux - thread non sécurisé : la méthode d'implémentation la plus basique, le contexte de thread singleton, n'a pas besoin d'être partagée avec tous les threads et n'a pas besoin d'ajouter des verrous tels que la synchronisation pour améliorer les performances.

  • Mode paresseux - sécurité des threads : couplé au mode paresseux tel que synchroniser qui garantit la sécurité des threads, les performances relatives sont très faibles et la synchronisation n'est pas nécessaire la plupart du temps

  • À la manière de l'homme affamé. Fait référence à l'instance singleton globale construite lorsque la classe est chargée.

  • Vérifiez deux fois le type de verrouillage. De manière paresseuse, le mot-clé synchroniser et le mot-clé volatile sont utilisés pour garantir qu'il n'y a pas de concurrence entre les threads et que plusieurs instances sont générées lors de la première création. Seule la première création est synchronisée et les performances sont relativement élevées

  • Type d'inscription. Existe en tant que propriété globale de la classe créée. L'énumération

  • est créée lorsque la classe créée est chargée. La classe d'énumération elle-même en Java est également un mode singleton

Tutoriel recommandé : "

PHP"

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!

Déclaration:
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