Cet article décrit l'utilisation de deux modèles singleton en Java. Partagez-le pour votre référence, comme suit:
Selon la méthode de chargement, il existe deux implémentations du mode Singleton:
privé: uniquement utilisé dans la même classe
Statique: cette classe est une méthode de classe et ne peut pas appeler des méthodes d'instance. / Variable globale de classe
Final: la méthode ou la variable membre ne peut pas être modifiée
1. Style homme affamé
classe publique EAgersigleton {private static final eagerSigleton instance = new eAgersigleton (); private eagerSigleton () {} //// Constructeur privé public eAgersigleton getInstance () {// méthode d'usine statique instance de retour;}}2. Guy paresseux
classe publique lazysigleton {private static final lazysigleton instance = null; private lazysigleton () {} // constructeur privé public synchronisé lazysigleton getInstance () {// static factory méthodeAnalyse et comparaison:
Similitudes:
Le modèle Singleton appartient au modèle de création, garantissant qu'un seul cas de cette classe existe dans le même JVM. Dans les deux modèles singleton ci-dessus, on peut le voir:
① Les constructeurs des deux méthodes sont privés.
② Les interfaces externes sont toutes des méthodes d'usine.
Différences:
Le style affamé obtient directement une instance de cette classe lorsque la classe est chargée. On peut dire que la formule est liée au début. Le style paresseux ne pointe pas vers un objet spécifique lorsque la classe est chargée. Au lieu de cela, il est instancié après l'appel de la méthode d'usine. Par conséquent, le premier est rapide et le second est lent. Mais ce dernier peut charger d'autres classes, qui sont très flexibles (c'est-à-dire une expansion dynamique).
Pour plus de contenu lié à Java, les lecteurs qui sont intéressés par ce site peuvent afficher les sujets: "Tutoriel de structure de données Java et d'algorithme", "Résumé des conseils de nœud de Dom Operation Java", "Résumé du fichier Java et des conseils d'opération de répertoire" et "Résumé des conseils d'opération Java Cache"
J'espère que cet article sera utile à la programmation Java de tous.