erstellen einer singleton-Klasse in java mit public Konstruktor
Habe ich die Benutzung von privaten Konstruktors einer Klasse singleton ? Gibt es einen anderen Weg, als mit private Konstruktor ?
Kann ich nicht machen, eine Klasse singleton mit public Konstruktor ?
- möglich, Duplikat der Warum ist es zwingend erforderlich, dass die privaten Konstruktor innerhalb einer Singleton-Klasse
- Sie können einen Blick auf meine Antwort unten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihre Klasse hat einen öffentlichen Konstruktor, dann kann jeder erstellen eine Instanz zu jeder Zeit. Es ist also kein singleton mehr. Für ein singleton ist, kann es existiert nur eine Instanz.
Der Grund, es hat einen privaten Konstruktor ist, weil Sie wollen verhindern, dass Menschen frei zu schaffen, mehr als eine Instanz.
Einen öffentlichen Konstruktor ist nur möglich, wenn Sie in der Lage sind zu erkennen, eine Instanz vorhanden ist, und verbieten, eine weitere Instanz erstellt wird.
Ja, es ist tatsächlich möglich, zum Beispiel:
Wenn Sie wirklich müssen nutzen Sie die öffentlichen Konstruktor, dann sollten Sie prüfen, ob eine Instanz null ist, und werfen eine Ausnahme.
Erstellen Singleton-Objekt mit
public constructor
mitthrow exception
vom Konstruktor wenn ein Objekt bereits vorhanden ist.Zum Beispiel:
In der Regel, Singleton-Muster wird verwendet, wenn Sie sollten genau 1 Objekt einer Klasse (z.B. Fabriken sind sehr oft implementiert als Singleton).
public
modifier erlaubt es jedem, Zugriff auf Ihre Methode und Konstruktor). In diesem Fall kann jeder erstellen Sie eine Instanz Ihrer Klasse, also ist es kein singleton mehr.Durch die Einstellung
private
Modifikator zu Ihrem Konstruktor, sind Sie sicher, es kann nicht verwendet werden, außerhalb der Klasse, niemand wird zum erstellen von Objekten dieser Klasse.Und Nutzung Beispiel
Den privaten Konstruktor ist ein Grund, warum Ihre Klasse Singleton.
Diese Beispiel zeigt ziemlich gut, wie Sie verwenden können Ihre Singleton-Klasse
getInstance()