Primero precisamos lo que significa Patrón Singleton.
El Patrón Singleton, garantiza que una clase posea una sola instancia, y suministra un punto de acceso global a ella.

Un caso hipotético de aplicación podría ser: tenemos una clase BaseDeDatos que nos devuelve un objeto llamado "bd" una vez creada la conexión con la base de datos. En vez de permitir que las aplicaciones usen libremente la clase y puedan crear tantas instancias del objeto "Base de Datos" como aplicaciones y accesos a bases existan, se decide restringir la creación a una sola instancia y esta será compartida y usada por todos.
Un ejemplo claro.
Una Clase (Singleton) Config. “Config” para los amigos, que no es otra que la encargada de mantener la configuración del acceso a la base de datos y algunas otras cosas, como límites, nombres, etc.
Su uso es muy simple, se agrega el atributo, se lo inicializa, y listo.
Para usar una de las configuraciones, podemos simplemente:
db['host'] = 'localhost'; $config->db['user'] = 'root'; $config->db['pwd'] = ''; $config->db['name'] = 'motor'; $config->db['type'] = 'mysql'; ?>
Fácil de conservar, de actualizar y acceder.