Singleton is a creational design pattern, which ensures that only one object of its kind exists and provides a single point of access to it for any other code. Singleton has almost the same pros and cons as global variables. Although they're super-handy, they break the modularity of your code.
We have a Singleton class with a private constructor and a private destructor, ensuring that the class can only be instantiated and destroyed from within the class itself.