J2EE Singleton Pattern
Singleton Design Pattern
This design pattern governs the object instantiation of Object in Java. This design pattern is used when only one instance of object is required. The Constructor in a Singleton class is private and a public static method is used to get the Object of the Singleton class.
Consider a simple Singleton class.
public class SimpleSingletonClaz { private static SimpleSingletonClaz singletonObject = new SimpleSingletonClaz(); // private constructor of a Singleton Class private SimpleSingletonClaz() { } // Get Singleton class Object public static SimpleSingletonClaz getSingletonInstance() { return singletonObject; } }
In the above code you can see that, there is a private static object of that class and singleton class have a private constructor which restricts the direct instantiation of an object. To get the object of that class, a static method is created, this return the singleton object.
In the above case the when the class is loaded the instance of the class is loaded, it is no loaded on demand and not following the Lazy Loading Idiom. So we can change the code slightly different as
package singleton; public class SimpleSingletonClaz { private static SimpleSingletonClaz singletonObject = null; // private constructor of a Singleton Class private SimpleSingletonClaz() { } // Get Singleton class Object public static SimpleSingletonClaz getSingletonInstance() { // Checking whether the instance is created or not if (singletonObject == null) { singletonObject = new SimpleSingletonClaz(); } return singletonObject; } }
The singleton design pattern is used with the conjunction with the factory method patterns to create a system wide resource.
Read more..