Design Pattern (Entwurfsmuster) Singleton
Ein Singleton ein Entwurfsmuster, das sicherstellt, dass eine Klasse nur eine einzige Instanz besitzt und bietet einen globalen Zugriff auf diese Instanz. Das bedeutet, dass jedes Mal, wenn versucht wird, eine neue Instanz der Klasse zu erstellen, stattdessen immer nur auf dieselbe bereits existierende Instanz zurückgegriffen wird.
Um eine Singleton-Klasse zu implementieren, muss die Klasse einen privaten Konstruktor besitzen, der verhindert, dass neue Instanzen außerhalb der Klasse erstellt werden können. Stattdessen muss die Klasse eine statische Variable besitzen, die eine Referenz auf die einzige Instanz der Klasse speichert. Der Zugriff auf diese Instanz erfolgt dann über eine öffentliche statische Methode, die immer dieselbe Instanz zurückgibt.
Hier ist ein Beispiel einer Singleton-Klasse in Java:

In diesem Beispiel ist der Konstruktor der Singleton-Klasse privat, was bedeutet, dass nur Methoden innerhalb der Klasse darauf zugreifen können. Die statische Methode „getInstance“ überprüft, ob bereits eine Instanz der Klasse existiert, und erstellt gegebenenfalls eine neue Instanz. Wenn jedoch bereits eine Instanz existiert, wird diese zurückgegeben.
Die Verwendung von Singletons ist nützlich, wenn eine Klasse nur eine Instanz besitzen sollte, wie beispielsweise eine Klasse, die auf eine Datenbank zugreift oder eine Konfiguration für die gesamte Anwendung bereitstellt. Durch die Verwendung eines Singletons kann sichergestellt werden, dass die Ressourcen optimal genutzt werden und unnötige Instanzen der Klasse vermieden werden.