Java Reference
In-Depth Information
Nachdem der Client eine Referenz auf die Instanz der Klasse Singleton hat, kann er
Operationen auf dieser Instanz aufrufen, hier dargestellt durch den Aufruf der Methode
operation() :
:Client
«metaclass»
Singleton:
Classifier
instance:
Singleton
getInstance()
«Create»
getInstance() :
instance
operation()
operation()
getInstance()
getInstance() :
instance
operation()
operation()
Bild 4-63 Sequenzdiagramm für das Abholen einer Referenz auf das Singleton-Objekt
Die Instanz Singleton:Classifier stellt die Klasse Singleton als Instanz der
Metaklasse Classifier dar.
4.20.3.4 Programmbeispiel
Überall da, wo nur ein einziges Exemplar einer Klasse erzeugt werden darf wie z. B.
bei einem authentifizierenden Objekt, ist das hier beschriebene Muster die richtige
Wahl. Im folgenden Beispiel wird zuerst die Variante 1 des Singleton-Musters gezeigt.
Dann wird das Beispiel modifiziert zur Variante 2. Anschließend werden beide Varian-
ten diskutiert.
Programmierbeispiel Variante 1 - ToolTipManager
Um die Vor- und Nachteile beider Methoden besser verstehen zu können, soll nun
zuerst der Quellcode einer typischen Singleton-Klasse vorgestellt werden, nämlich der
Klasse ToolTipManager . Ein ToolTipManager bestimmt beispielsweise, welche
Erläuterung (engl. tool tip) wie lange angezeigt wird, wenn die Maus auf ein grafisches
Element zeigt. Es darf aber nur eine einzige Anzeige und keine konkurrierenden Tool-
TipManager geben. Daher muss die Klasse ToolTipManager als Singleton ausge-
legt werden. Hier die Klasse ToolTipManager :
// Datei: ToolTipManager.java
final class ToolTipManager
{
private static ToolTipManager instance;
Search WWH ::




Custom Search