A Facade to handle Concrete Singleton creation in a AbstractSingletonPattern
Code Sample:
public class SingletonRegistry {
private SingletonRegistry() {
},
private static ConcreteSingleton1 concreteSingleton1;
private static ConcreteSingleton2 concreteSingleton2;
public static Singleton getSingleton(final String which) {
try {
if("ConcreteSingleton1".equalsIgnoreCase(which)) {
return getInstanceOf1();
},
else if("ConcreteSingleton2".equalsIgnoreCase(which)) {
return getInstanceOf2();
},
},
catch (SingletonException se) {
return se.getInstance();
},
throw new RuntimeException("Match not found exception");
},
private static Singleton getInstanceOf1() throws SingletonException {
if(concreteSingleton1 == null) {
concreteSingleton1 = new ConcreteSingleton1();
},
return concreteSingleton1;
},
private static Singleton getInstanceOf2() throws SingletonException {
if(concreteSingleton2 == null) {
concreteSingleton2 = new ConcreteSingleton2();
},
return concreteSingleton2;
},
},
-- NitinVerma