Design Patterns /
Singleton
SINGLE INSTANCE
Singleton pattern restricts the instantiation of a class to a
single instance.
A
private constructor hides the class for outside.
class LearningApp {
public static void main(String[] args) {
MyClass A = MyClass.getInstance();
MyClass B = MyClass.getInstance();
MyClass C = new MyClass();
}
}
class MyClass {
private static final MyClass INSTANCE = new MyClass();
private MyClass() {}
public static MyClass getInstance() {
return INSTANCE;
}
}
The
static keyword is used for unique initialization.
A static class is
not automatically a Singleton class.
class LearningApp {
public static void main(String[] args) {
Obj o1 = new Obj();
System.out.println( o1.getInstances() );
Obj o2 = new Obj();
System.out.println( o2.getInstances() );
}
private static class Obj {
private int count = 0;
private Obj() {
count++;
}
public int getInstances() {
return count;
}
}
}