J2EE Singleton Pattern - Design Pattern Tutorials

J2EE singleton pattern

J2EE Singleton Pattern - Design Pattern Tutorials

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..

Tutorials

  1. Assertion in java
  2. Anonymous Inner Classes - Anonymous Inner Classes tutorial
  3. Appending Strings - Java Tutorials
  4. Assertion in Java
  5. Autoboxing unboxing in Java - Java Tutorials
  6. Thread Deadlocks - Java Tutorials
  7. BASIC Java - Java Tutorials
  8. Interthread Communication in Java
  9. boolean comparisons - tutorial
  10. Catching Exceptions in GUI Code - Java Tutorials
  11. Exception in Java - Java Tutorials
  12. Causing Deadlocks in Swing Code
  13. Class names don't identify a class - Java Tutorials
  14. Commenting out your code - Java Tutorials
  15. Java Deadlocks - Java Deadlocks Tutorials, Deadlocks in Java
  16. Disassembling Java Classes - Java Tutorials
  17. Double-checked locking,java tutorials,java tutorial
  18. Exceptional Constructors - Java Tutorials
  19. Final Methods - Java Tutorials
  20. garbage collection in java
  21. Java - JDK Tutorials
  22. J2EE Singleton Pattern - Design Pattern Tutorials
  23. Java Comments - Java Tutorials
  24. Java Field Initialisation - Java Tutorials
  25. Java HashSet  - Java Tutorials
  26. Java Multi Dimensions Array - Java Tutorials
  27. java awt package tutorial
  28. Java GC
  29. Java HashMap - Java Tutorials
  30. JDK 1.4 the NullPointerException - Java Tutorials
  31. HashMap and HashCode
  32. LinkedHashMap - Java Tutorials
  33. Which is Faster - LinkedList or ArrayList?
  34. Making Enumerations Iterable - JDK 5 Example
  35. Making Exceptions Unchecked - java tutorial,java tutorials
  36. Creation Time Comparison of Multi Dimensional Array- Java Tutorials
  37. Multicasting in Java - java tutorials,tutorial
  38. Non-virtual Methods in Java - java tutorials
  39. Orientating Components Right to Left,java newsletter,java,tutorial
  40. The link to the outer class,java tutorial,java tutorials