Diskussion:Muster: Java: Singleton

Aus Wikibooks
Zur Navigation springen Zur Suche springen

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. ä