¿Cuáles son las principales ventajas de usar una class Singleton para una class de "utilidad"?

He visto muchas references a "Singleton" y las he visto utilizadas para funciones de "utilidad", como validaciones comunes, conversiones, etc. Suponiendo que no hay necesidad de hacer reference a "yo", ¿hay alguna ventaja de usar un singleton, en lugar para simplemente implementar la class de utilidad con methods de class y variables estáticas opcionales? ¿Estilo? ¿Actuación? Concurrencia

En otras palabras, en lugar de llamar a foo a través de una instancia de MySingleton:

BOOL b = [[MySingleton shanetworkingInstance] foo:xyz]; 

uno podría llamar a foo a través del método de class de MyUtility:

 BOOL b = [[MyUtility class] foo:xyz]; 

La implementación de cualquiera de las classs está implícita y debo renunciar a su inclusión si eso está bien.

No hay otras ventajas que no asums references a ti mismo . Y por 'usted' no me refiero a su implementación de MyUtility , me refiero a las classs que llaman MyUtility , en otras palabras, termina invirtiendo conocimientos sobre la implementación de MyUtility en otras classs, en contra de los principios habituales orientados a objects.

Dicho esto, el mismo argumento va en sentido contrario. Si supone que hay una instancia, se requiere MyUtility para actuar como una instancia. Si llama a methods de class, puede pasarlos internamente a una instancia singleton.

Sin embargo, debido a que las instancias son la norma y no la exception, es estilísticamente less presuntuoso esperar hablar con una instancia.