Ensure a class only has one instance, and provide a global point of access to it.
The method for accessing the unique instance may use lazy creation - the instance is not created until the first time the method is invoked.
Here is a singleton class with lazy creation.
public class Singleton {
protected Singleton() {
// initialization code
}
// instance methods
private static Singleton theSingleton;
public static Singleton createSingleton() {
if (theSingleton == null) {
theSingleton = new Singleton();
}
return theSingleton;
}
}