Java Reference
In-Depth Information
Diese beiden Varianten haben je nach verwendeter Programmiersprache meist unter-
schiedliche Implementierungen, die Aspekte wie Geschwindigkeit, Threadsicherheit
und Speicherbedarf berücksichtigen (siehe Kapitel 4.20.3.4). Hier zeigt sich, dass sich
das Singleton-Muster aufgrund seiner einfachen Struktur zwar leicht erklären lässt,
seine Implementierung aber dennoch komplex sein kann.
4.20.3.1 Klassendiagramm
Die Klasse
Singleton
erzeugt das einzige Singleton-Objekt als Klassenattribut und
stellt dieses über eine Klassenmethode
getInstance()
zur Verfügung. Der für die
Erzeugung benutzte Konstruktor wird als
private
deklariert, so dass er außerhalb
der Klasse
Singleton
nicht zur Verfügung steht. Die Methode
operation()
steht
im Klassendiagramm stellvertretend für alle möglichen Operationen, die auf dem
Singleton-Objekt ausgeführt werden können. Das folgende Bild zeigt das Klassendia-
gramm:
Singleton
- instance: Singleton
Client
«use»
+
getInstance()
- Singleton()
+ operation()
Bild 4-62 Klassendiagramm für das Singleton-Muster
Ein Client nutzt das Singleton-Objekt und ruft Operationen des Singleton-Objekts auf.
Die Klasse
Singleton
muss für den Client sichtbar sein. Man kann nur vom Client
zum Singleton gelangen, die Klasse
Singleton
kennt aber den Client nicht.
4.20.3.2 Teilnehmer
Client-Klasse
Der
Client
ruft die Klasse
Singleton
auf.
Singleton-Klasse
Die Klasse
Singleton
ist diejenige Klasse, von der es nur eine einzige Instanz geben
darf.
4.20.3.3 Dynamisches Verhalten
Ein Client, der mit dem Singleton-Objekt arbeiten will, ruft die Klassenmethode
get-
Instance()
der Klasse
Singleton
auf. Wie Bild 4-63 zeigt, ist der Rückgabewert
der Methode
getInstance()
eine Referenz auf die neu erstellte Instanz der Klasse
Singleton
oder - wenn die Instanz bereits existiert - auf das einzige bereits vorhan-
dene Exemplar der Klasse
Singleton
.
Search WWH ::
Custom Search