Esto es ciertamente una pregunta bastante flexible. Mi comprensión actual de singletons es que son una clase que configuras de tal forma que solo se crea una instancia.Propósito de los singletons en la programación
Esto suena como una clase estática para mí. La principal diferencia es que con una clase estática no puedes/no puedes instanciarla, solo la usas como Math.pi()
. Con una clase Singleton, todavía tendría que hacer algo como
singleton mySingleton = new singleton();
mysingleton.set_name("foo");
singleton otherSingleton = new singleton();
// correct me if i am wrong, but mysingleton == othersingleton right now, yes?
// this the following should happen?
otherSingleston.set_name("bar");
mysingleton.report_name(); // will output "bar" won't it?
Tenga en cuenta, estoy pidiendo este idioma de forma independiente, más sobre el concepto. Así que no estoy preocupado acerca de cómo codificar una clase así, sino más bien por qué querrías hacerlo y qué cosas tendrías que considerar.
Mucha gente ha dicho que los singletons son básicamente solo una forma de obtener variables globales, y esto es 'malo'. Pero seguramente hay momentos en que las variables globales son útiles? ¿Cómo es que las variables globales de singletons? – thecoshman