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