Diskussion:Muster: Java: Singleton
Implizit synchronisierte Variante
howdy --- eigentlich wuerde es ja schon so reichen
public class Singleton { // Innere private Klasse, die erst beim Zugriff durch die umgebende Klasse initialisiert wird // Die Initialisierung von Klassenvariablen geschieht nur einmal // und wird vom ClassLoader implizit synchronisiert public static final Singleton INSTANCE = new Singleton(); // Verhindere die Erzeugung des Objektes über andere Methoden private Singleton () {} // Eine nicht synchronisierte Zugriffsmethode auf Klassenebene. public static Singleton getInstance () { return this.INSTANCE; } }
public class Beispiel { public void machEtwas() { Singleton.INSTANCE.funktion(); // oder Singleton.getInstance().funtion(); } }
Auch von Interesse waere, wie man ein Singleton - und den Zugriff auf das instance object - bei mehr als einem Classloader (z.b. bei PlugIns oder aehnliches) implentieren sollte.
ä