Los patrones de diseño son soluciones generales para problemas que ocurren comunmente y son reusables. bien ahora el patron singleton dice lo siguiente
Cita: Garantiza que una clase solo tenga instancia (objeto) y proporciona un punto de acceso global a ella
Bien el patron habla de instancias por lo cual estamos tambien hablando de objetos, este es el punto clave.
Ahora si tomamos en cuenta lo que son los patrones y lo que es el singleton y asumiendo que tu pregunta es una cosa comun como lo es acceder a una base de datos:
Cita: creo que es de locos volver a crear una conexion o instancia cada vez que se va hacer una query, no creo que alguien haga eso, la mayoria hace un include a un config.php en la que se encuentra la unica conexion y que sirve a toda la pagina.. entonces de que ayuda singleton si nadie hace lo que se supone que previene????
Si asi es comunmente en la programacion estructurada eso haces pero si estas trabajando con objetos ?? como garantizo una sola conexion (si fuera el caso) ? y que pueda acceder desde cualquier punto de la aplicacion
Pues bien hay es donde usas tu singleton. cuando necesitas que tu clase requiera una sola instancia y quien la usa tambien. pero en lavida real siempre hay una forma de hacer el trabajo sin usarlo ya que el singleton es uno de los patrones de diseño del que mas se abusa y que por su forma de emplearse promueve el acoplamiento y oculta dependecias. En la definicion puse global resaltado por que muchas veces gloabal se compara con el significado que tiene esa palabra en un lenguaje y el patron en realidad se refiere al alcance dentro del dominio no del lenguaje. Hay muchos casos que requieren un singleton pero no necesariamente tiene que ser el patron Singleton la solucion. en otras palabras el problema no es tener un objeto unico si no el uso que se le da al patron el cual en la mayoria de los casos se puede sustituir por otras solucion.
Saludos