2.singleton Java Class
2.singleton Java Class
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page 1
JAVA Means DURGA SOFT
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page 2
JAVA Means DURGA SOFT
Intent:
Note: For a normal java class if programmer or container is creating only one object even
though that class allows to create multiple objects then that java class is not singleton java
class. According to this, then a java class of servlet program is not singleton java class. It is a
normal java class for which servlet container creates only one object.
Applicability
The singleton pattern should be used when there must be exactly one instance of a
class, and when it must be accessible to clients from a global access point.
If multiple applications of a project that are running from a single JVM wants to work
with objects of java class having same data then it is recommended to make that java
class as singleton java class. So that only one object will be allowed to create for that
class and we can use that object for multiple tiles in multiple applications.
Ex:
I. Most of the JDBC driver classes are given as singleton java classes for better utilization.
III. In log4j environment, the Logger class is given as singleton java class.
1. Take private static reference variable of the current class as instance variable.
2. To prevent instantiating the class more than once, take private constructor so that an
instance can be created only from within the static method of the class.
3. Develop static factory method, which will return an instance of current class, or null, if
the class has already been instantiated.
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page 3
JAVA Means DURGA SOFT
4. Override clone() and return the above created object to suppress the object creation
through cloning process.
Sample Code:
// SingletonPatternTest.java
class Demo
private Demo()
// Singleton Logic
if (instance == null)
return instance;
return instance;
//normal method
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page 4
JAVA Means DURGA SOFT
};
System.out.println();
Demo d1=Demo.getInstance();
d1.called();
System.out.println();
Demo d2=d1.getInstance();
d2.called();
System.out.println();
Demo d3=(Demo)d1.clone();
d3.called();
}//main
}//class
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page 5
JAVA Means DURGA SOFT
Output:
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page 6
JAVA Means DURGA SOFT
DURGA SOFTWARE SOLUTIONS ,202 HUDA Maitrivanam, Ameerpet , Hyd. Ph: 040-64512786 Page 7