1. Description
1) Singleton Pattern: Assurez-vous qu'il n'y a qu'une seule instance d'une classe, instanciez-la vous-même et fournissez cette instance au système
2) Singleton Pattern Classification: Singleton Pattern (instance un objet à sa propre référence lorsque la classe est chargée), motif de singleton paresseux (l'objet ne sera instancié que lorsque la méthode qui obtient l'instance est appelée, comme GetInstance) (Java Singleton Les performances du mode sont meilleures que le mode Singleton paresseux, le mode Singleton paresseux est généralement utilisé en C ++)
3) Éléments de modèle singleton:
a) Méthode de construction privée
b) Points de référence statiques privés à sa propre instance
c) Méthode statique publique avec sa propre instance comme valeur de retour
2. Exemple
Mode Singleton de la faim:
La copie de code est la suivante:
package com.wish.ModeDeSign;
classe publique HungrySingleton {
Instance privée statique HungrySingleton = new HungrySingleton ();
privé HungrySingleton () {
}
public statique HungrySingleton getInstance () {
retour d'instance;
}
}
Mode Singleton paresseux:
La copie de code est la suivante:
package com.wish.ModeDeSign;
classe publique singleton {
singleton privé () {
}
Instance singleton statique privée;
Singleton Singleton GetInstance () {//
if (instance == null) {
instance = new singleton ();
}
retour d'instance;
}
}
Test Class Driver.java
La copie de code est la suivante:
package com.wish.ModeDeSign;
Public classe pilote {
public static void main (String [] args) {
Singleton s1 = singleton.getInstance ();
Singleton s2 = singleton.getInstance ();
System.out.println (S1 == S2);
}
}
3. Avantages et scénarios applicables
1) Avantages du mode Singleton:
Il n'y a qu'un seul objet en mémoire, enregistrant l'espace mémoire.
Éviter la création et la destruction fréquentes des objets peuvent améliorer les performances.
Évitez plusieurs professions de ressources partagées.
Peut être accessible à l'échelle mondiale.
2) Scénarios applicables:
Des objets qui doivent être instanciés fréquemment puis détruits.
Des objets qui prennent trop de temps ou trop de ressources lors de la création d'objets, mais sont souvent utilisés.
Objet de type outil avec état.
Objets qui accèdent fréquemment à des bases de données ou à des fichiers.
4. Choses à noter lors de l'utilisation
1) Lorsque vous utilisez, vous ne pouvez pas créer un singleton avec le mode de réflexion, sinon un nouvel objet sera instancié.
2) Faites attention aux problèmes de sécurité des fils lors de l'utilisation du mode Singleton paresseux
3) Le modèle de singleton affamé et les méthodes de construction de motifs de singleton paresseux sont à la fois privés et ne peuvent donc pas être hérités.