Singleton is a creational design pattern that lets you ensure that a class has only one instance, while providing a global access point to this instance.
- The Singleton class declares the static method getInstance that returns the same instance of its own class. The Singleton’s constructor should be hidden from the client code. Calling the getInstance method should be the only way of getting the Singleton object.