Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03129.jsonl.gz/1513

Wozu wird Singleton genutzt?
Das Singleton ist ein Entwurfsmuster und wird dann angewendet, wenn in der ganzen Applikation nur eine Instanz zu einer Klasse existieren darf. Ein Beispiel dafür wäre eine Klasse, die Informationen aus einem File holt und diese als Rückgabewert zurückgibt.
Da diese Klasse in jeder anderen Klasse dasselbe machen würde, macht es keinen Sinn, mehrere Instanzen zu erstellen. Daher kann man mit Singleton eine Instanz für die ganze Applikation zu erstellen, auf die global zugegriffen werden kan
Wie erstellt man ein Singleton-Pattern?
public class Lerndoku { public static final Lerndoku INSTANCE = new Lerndoku(); private Lerndoku () { } public static Lerndoku getInstance () { return INSTANCE; } public static String getFileInformation () { return ""; } //Weitere Methoden }
Was beim Singleton speziell ist, ist der private Konstruktor. Um auf die Klasse und deren Methoden zugreifen zu können, erstellt man wie auf Zeile 4 gezeigt eine Instanz von der Klasse. Diese Instanz macht man static & final, final weil es nur diese Instanz geben wird und static, damit man global darauf zugreifen kann.
Wie man auf Zeile 11 sehen kann, erstellt man eine Methode getInstance(), welche die oben erstellte Instanz als Rückgabewert zurückgibt. Über die Methode getInstance() greift man dann auf andere Methoden der Klasse wie auf Zeile 16 z.B. «getFileInformation()» zu.
In anderen Klassen greift man dann auf die Methoden z.B. wie folgt zu: Lerndoku.getInstance().getFileInformation();
Reflexion
Bei der Aufgabe, an der ich momentan arbeite, hat mir Remo das Singleton-Pattern gezeigt und ich musste bei manchen Klassen damit weiterarbeiten. Da ich das Singleton-Pattern vorher noch nie verwendet habe und nicht wollte, dass ich vergesse wie ich dieses anwende, habe ich diese Lerndokumentation geschrieben.
Am Anfang war es ein wenig verwirrend für mich, da man nur eine Instanz hat. Nach dem ich aber ein wenig damit gearbeitet habe, fand ich es doch ganz einleuchtend und gut warum man das Singleton-Pattern verwenden sollte.