When To Use Singleton Design Pattern