An example of where the singleton pattern is used is in the Spring Framework. If you add this to your code and run your application http://localhost:8080 you can detect that the StudentsController class is only instanciated once.
private int time = 1;
public StudentsController(){
System.out.println("I was called " + time + " time(s)");
time++;
}
public class Singleton {
private static Singleton singleton = new Singleton();
private Singleton() { }
public static Singleton getInstance( ) {
return singleton;
}
protected static void singletonMethod( ) {
System.out.println("I am a singleton method");
}
}
public class Main {
public static void main(String[] args) {
Singleton.getInstance().demoMethod();
}
}
public class ClassicSingleton {
private static ClassicSingleton instance = null;
private ClassicSingleton() {
}
public static ClassicSingleton getInstance() {
if(instance == null) {
instance = new ClassicSingleton();
}
return instance;
}
}
public static void main(String[] args) {
ClassicSingleton singleton = ClassicSingleton.getInstance();
System.out.println(singleton);
ClassicSingleton singleton2 = ClassicSingleton.getInstance();
System.out.println(singleton2);
Normal normal = new Normal();
System.out.println(normal);
Normal normal2 = new Normal();
System.out.println(normal2);
}
© KEA, clbo 2018