Ensure a class only has one instance, and provide a global point of access to it.
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.
image by refactoring guru
