public class SingletonFactory{
public static class Singleton1 {
private static Singleton1 instance = new Singleton1();
private Singleton1(){
}
public static Singleton1 getInstance(){
return instance;
}
}
public static class Singleton2{
private static Singleton2 instance = null;
private Singleton2(){
}
public static Singleton2 getInstance(){
if(instance == null){
instance = new Singleton2();
}
return instance;
}
}
public static class Singleton3{
private static Singleton3 instance = null;
private Singleton3(){
}
public static synchronized Singleton3 getInstance(){
if(instance == null){
instance = new Singleton3();
}
return instance;
}
}
public static class Singleton4{
private static Singleton4 instance = null;
private Singleton4(){
}
public static Singleton4 getInstance(){
if(instance == null){
synchronized (Singleton4.class) {
if(instance == null){
instance = new Singleton4();
}
}
}
return instance;
}
}
public static class Singleton5{
private static volatile Singleton5 instance = null;
private Singleton5(){
}
public static Singleton5 getInstance(){
if(instance == null){
synchronized (Sinlgleton5.class) {
if(instance == null){
instance = new Singleton5();
}
}
}
return instance;
}
}
public static class Singleton6{
private static class InstanceHolder{
public static Singleton6 instance = new Singleton6();
}
public static Singleton6 getInstance(){
return InstanceHolder.instance;
}
private Singleton6(){
}
}
}