Singleton stellt sicher, dass nur genau eine Instanz einer Klasse erzeugt wird.

siehe: GitHub - ReadMe, GOF, PK

Sequenzdiagramm

Beispiel

Sie finden zwei Implementierungen eines Tracers, der hier einfachheitshalber nur die Aufgabe hat, Zeilen in eine Datei zu schreiben.

Beide Implementierungen leisten dasselbe, nutzen jedoch verschiedene Wege zur Sicherstellung der Singleton-Eigenschaften.

Um das Zusammenspiel im Detail beobachten zu können, setzen Sie den log-level auf DEBUG in der logback.xml und führen den zugehörigen TestCase aus. Beachten Sie auch die Hinweise im Quellcode.

Das Foto zeigt anschaulich die wichtigsten Eigenschaften von Singleton:

  • Einfach zu verstehen
  • Zu genießen in kleinen Mengen, Übermaß nicht empfohlen
  • Manchmal die einzige Lösung
  • Wie bei Daniel Defoe wird nur allzu gern bei den Details geschlampt

Ressourcen