Singleton Java class:
====================================
-> The Java class that allows us to create only one object per JVM is called singleton java class.
-> Situations to take singleton java class:
a. If class is not having any state.
b. If class is having only sharable read only state (final variable).
c. If class is having huge amount of state and performing write operations on that state in synchronized manner (1 Thread at a time).
Creation of our own Singleton class
=======================
-> We can create our own singleton class, by using
private constructor,
static variables,
static methods
we can implement singleton classes.
Example:
public class Test implements Cloneable
{
private static Test t;
private Test()
{
}
public static Test getInstance()
{
if(t==null)
{
t=new Test();
}
return t;
}
public Object clone()
{
return this;
}
}
Now ,
Test t1=Test.getInstance();
Test t2=Test.getInstance();
Test t3=Test.getInstance();
|
|
Test t100=Test.getInstance();
Like this, Only one object is created here with multiple references.
========================================================================================
-> If Constructor is not private then outside person can create object directly by calling constructor.
In that case they can create multiple objects and also we will miss singleton behavior.
-> If 't' is not private then after creation of first object outside person can reassign 't' with null. In
that case a second new object will be created, whenever we call getInstance() method again.
Test t1=Test.getInstance();
Test.t=null;
Test t2=Test.getInstance();
-> If we are not overriding clone() method & Test class implements Cloneable then Object class
clone() method will be executed which provides always a separate new object.
Test t1=Test.getInstance();
Test t2=(Test)t1.clone();
========================================================================================
Advantage of Singleton Class:
==========================
Instead of creating multiple objects we can run entire show with only one object but with multiple references.
Hence the main advantage of singleton class is performance will be improved and we know object creation is most precious.
====================================
-> The Java class that allows us to create only one object per JVM is called singleton java class.
-> Situations to take singleton java class:
a. If class is not having any state.
b. If class is having only sharable read only state (final variable).
c. If class is having huge amount of state and performing write operations on that state in synchronized manner (1 Thread at a time).
Creation of our own Singleton class
=======================
-> We can create our own singleton class, by using
private constructor,
static variables,
static methods
we can implement singleton classes.
Example:
public class Test implements Cloneable
{
private static Test t;
private Test()
{
}
public static Test getInstance()
{
if(t==null)
{
t=new Test();
}
return t;
}
public Object clone()
{
return this;
}
}
Now ,
Test t1=Test.getInstance();
Test t2=Test.getInstance();
Test t3=Test.getInstance();
|
|
Test t100=Test.getInstance();
Like this, Only one object is created here with multiple references.
========================================================================================
-> If Constructor is not private then outside person can create object directly by calling constructor.
In that case they can create multiple objects and also we will miss singleton behavior.
-> If 't' is not private then after creation of first object outside person can reassign 't' with null. In
that case a second new object will be created, whenever we call getInstance() method again.
Test t1=Test.getInstance();
Test.t=null;
Test t2=Test.getInstance();
-> If we are not overriding clone() method & Test class implements Cloneable then Object class
clone() method will be executed which provides always a separate new object.
Test t1=Test.getInstance();
Test t2=(Test)t1.clone();
========================================================================================
Advantage of Singleton Class:
==========================
Instead of creating multiple objects we can run entire show with only one object but with multiple references.
Hence the main advantage of singleton class is performance will be improved and we know object creation is most precious.
Comments
Post a Comment