Die schlechte Lösung: Man schreibt eine Klasse mit
- einem private Konstruktor
- einer static Variable für das Objekt
- einer static Methode die das Objekt zurückgibt (und vorher erzeugt, falls es noch nicht erzeugt wurde)
Außerdem brauchst du noch eine Möglichkeit, das Objekte von abgeleiteten Klassen zurückgeliefert werden, ohne die Art zu ändern, wie man an das Objekt kommt.
Die gute Lösung: man verzichtet auf Singletons.