J2EE Singleton Pattern - Design Pattern Tutorials

J2EE singleton pattern

Ads

Tutorials   
Java final method Assert in Java Final method in java Autoboxing in Java assert In Java JDBC batch insert using Java bean class Java Singleton Pattern Java Collection API - Java Tutorials Stack Overflow - Java Tutorials End of Year Puzzle The link to the outer class,java tutorial,java tutorials Orientating Components Right to Left,java newsletter,java,tutorial Non-virtual Methods in Java - java tutorials Multicasting in Java - java tutorials,tutorial Creation Time Comparison of Multi Dimensional Array- Java Tutorials Making Exceptions Unchecked - java tutorial,java tutorials Making Enumerations Iterable - JDK 5 Example Which is Faster - LinkedList or ArrayList? LinkedHashMap - Java Tutorials HashMap and HashCode JDK 1.4 the NullPointerException - Java Tutorials Java HashMap - Java Tutorials Java GC java awt package tutorial Java Multi Dimensions Array - Java Tutorials Java HashSet  - Java Tutorials Java Field Initialisation - Java Tutorials Java Comments - Java Tutorials J2EE Singleton Pattern - Design Pattern Tutorials Java - JDK Tutorials garbage collection in java Final Methods - Java Tutorials Exceptional Constructors - Java Tutorials Double-checked locking,java tutorials,java tutorial Disassembling Java Classes - Java Tutorials Java Deadlocks - Java Deadlocks Tutorials, Deadlocks in Java Commenting out your code - Java Tutorials Class names don't identify a class - Java Tutorials Causing Deadlocks in Swing Code Exception in Java - Java Tutorials Catching Exceptions in GUI Code - Java Tutorials boolean comparisons - tutorial Interthread Communication in Java BASIC Java - Java Tutorials Thread Deadlocks - Java Tutorials Autoboxing unboxing in Java - Java Tutorials Assertion in Java Appending Strings - Java Tutorials Anonymous Inner Classes - Anonymous Inner Classes tutorial Assertion in java
Ads

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

Advertisements

Ads
Share on Google+Share on Google+

J2EE Singleton Pattern - Design Pattern Tutorials

Posted on: April 18, 2011 If you enjoyed this post then why not add us on Google+? Add us to your Circles

Advertisements

Ads
 

Discuss: J2EE Singleton Pattern - Design Pattern Tutorials  

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 
Comments:1
str7
October 9, 2011
WTF

I really don't understand how the hell is this related to J2EE, but the biggest problem is not that. The second (lazy loading) solution in a multi-threaded environment is totally wrong!

Ads

 

Ads