public with sharing class LazyInitializedSingleton {
//private static instance of the class
private static LazyInitializedSingleton instance = null;
//private constructor to avoid creating an instance anywhere outside of this class
private LazyInitializedSingleton(){}
public static LazyInitializedSingleton getInstance(){
if(instance == null){
instance = new LazyInitializedSingleton();
}
return instance;
}