Dieser Artikel beschreibt die Verwendung von zwei Singleton -Mustern in Java. Teilen Sie es für Ihre Referenz wie folgt weiter:
Nach der Lademethode gibt es zwei Implementierungen des Singleton -Modus:
Privat: Nur in derselben Klasse verwendet
Statisch: Diese Klasse ist eine Klassenmethode und kann keine Instanzmethoden aufrufen. /Klasse Globale Variable
Finale: Methode oder Mitgliedsvariable kann nicht geändert werden
1. Hungriger Mann Stil
öffentliche Klasse Eagersigreton {private statische endgültige Eagersigleton Instance = new eagersigleton ();2. Fauler Kerl
public class lazysigleton {private statische endgültige lazysigleton instance = null; private lazysigleton () {} // private Konstruktor public synchronisierte lazysigleton getInstance () {// statische Fabrikmethode, die Synchronizedif (Instanz == NULL) {Instance = New Lazyory -Methode, {Instance = new Lazyory -Methode;Analyse und Vergleich:
Ähnlichkeiten:
Das Singleton -Muster gehört zum Schöpfungsmuster und stellt sicher, dass nur eine Instanz dieser Klasse in derselben JVM existiert. In den beiden oben genannten Singleton -Mustern kann man gesehen werden:
① Die Konstrukteure beider Methoden sind privat.
② Externe Schnittstellen sind alle Werksmethoden.
Unterschiede:
Der hungrige Stil erhält direkt eine Instanz dieser Klasse, wenn die Klasse geladen wird. Man kann sagen, dass die Formel im frühen Stadium gebunden ist. Der faule Stil verweist nicht auf ein bestimmtes Objekt, wenn die Klasse geladen wird. Stattdessen wird es so instanziiert, nachdem die Fabrikmethode aufgerufen wurde. Daher ist ersteres schnell und letzteres langsam. Letzteres kann jedoch andere Klassen laden, die hoch flexibel sind (dh dynamische Expansion).
Für mehr Java-bezogene Inhalte können Leser, die an dieser Website interessiert sind, die Themen anzeigen: "Java-Datenstruktur und Algorithmus-Tutorial", "Zusammenfassung der Java-Operation DOM-Knoten-Tipps", "Zusammenfassung der Java-Datei- und Verzeichnisoperationstipps" und "Zusammenfassung von Java Cache Operation Tipps" "
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.