de.mathema.util
Class Singleton

java.lang.Object
  extended by de.mathema.util.Singleton

public abstract class Singleton
extends java.lang.Object

Klasse für Implementierung des Singleton-Patterns.
Benutzung z.B. mit einer anonymen Klasse:
class MyClass { ... private static final Singleton _singleton = new Singleton() { protected Object createInstance() { return new MyClass(); } }; ... public static MyClass getInstance() { return (MyClass)_singleton.getInstance(); } }

Author:
Uwe Wardenbach (uwe.wardenbach@gmx.de)

Field Summary
protected  java.lang.Object _singleInstance
           
 
Constructor Summary
Singleton()
           
 
Method Summary
protected abstract  java.lang.Object createInstance()
          Eine Klasse die einen Singleton benutzen will, überlädt diese Methode
 java.lang.Object getInstance()
          implementiert threadsafe, aber effizient den Zugriff auf die Singleton-Instanz und bei Bedarf deren Erzeugung über createInstance()
Synchronisationsmechanismen werden nur benutzt, wenn der Singleton noch nicht erzeugt ist
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_singleInstance

protected java.lang.Object _singleInstance
Constructor Detail

Singleton

public Singleton()
Method Detail

createInstance

protected abstract java.lang.Object createInstance()
                                            throws java.lang.Exception
Eine Klasse die einen Singleton benutzen will, überlädt diese Methode

Returns:
description
Throws:
java.lang.Exception

getInstance

public final java.lang.Object getInstance()
                                   throws java.lang.Exception
implementiert threadsafe, aber effizient den Zugriff auf die Singleton-Instanz und bei Bedarf deren Erzeugung über createInstance()
Synchronisationsmechanismen werden nur benutzt, wenn der Singleton noch nicht erzeugt ist

Returns:
Referenz auf das mit createInstance() erzeugte Objekt
Throws:
java.lang.Exception