The singleton design pattern is a creational design pattern that only allows one instance of its kind to exist and provides a single point of access to it. * Singletons let you access your object from anywhere in the application. * Guarantees that only one instance of this class will be available at any point in time. * An example of this pattern in use is an instance database. You only need one instance to access the database. ### When should the Singleton Pattern be used? * It should be used when a class must have a single instance variable. * It disables all means of creating objects of a class except for the special static creation method. * Returns the existing instance if it has already been created. * Its code needs to be adapted to handle multiple threads.