Java-Design: So funktioniert das Singleton

Das Java-Singleton gehört zur Familie der Designmuster, die den Instanzierungsprozess beeinflussen. Dabei ist ein Singleton ein Objekt, das nicht instanziert werden kann. ZDNet erklärt neben Funktionsweise und Verwendungsmöglichkeiten auch worauf man achten sollte.

Singletons sind sehr nützlich, wenn nur eine Instanz einer Klasse benötigt wird und nicht mehrere Instanzen einer Klasse existieren sollen.

Das Designmuster impliziert, dass zu beliebiger Zeit jeweils nur eine Instanz eines Singletons (Objekts) durch die JVM erzeugt werden kann. Die Implementierung des Musters erfolgt über die Erzeugung einer Klasse mittels einer Methode, die wiederum eine neue Instanz einer Klasse erzeugt, wenn diese nicht bereits existiert. Wenn bereits eine Instanz der Klasse vorhanden ist, erfolgt lediglich eine Referenz auf dieses Objekt.

So funktioniert das Singleton-Muster

Nachfolgend wird ein typisches Beispiel für ein Singleton gezeigt:



Das klassische Singleton verwendet keine direkte Instanzierung einer statischen Variable mit Deklaration. Es instanziert vielmehr eine statische Instanzvariable im Konstruktor, ohne zu überprüfen, ob diese bereits existiert:



Der Standardkonstruktor für die Singleton-Klasse wird individuell ausgelegt. Dadurch ist keine direkte Instanzierung des Objekts durch andere Klassen mittels des neuen Schlüsselworts möglich. Ein statischer Modifikator wird auf die Instanzmethode angewendet, die das Singleton-Objekt zurückgibt. Auf diese Weise wird sie zu einer Methode auf Klassenebene, die ohne Erzeugung eines Objekts zugänglich ist.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

ZDNet für mobile Geräte
ZDNet-App für Android herunterladen Lesen Sie ZDNet-Artikel in Google Currents ZDNet-App für iOS

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Java-Design: So funktioniert das Singleton

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *