Alternativa a Singleton en Objective-C para un mejor diseño de la aplicación

Parece que muchos códigos Objective-C están usando Singleton hoy en día.

Mientras que muchas personas se quejan de Singleton, p. Google ¿Dónde se han ido todos los Singletons?), sus compañeros ingenieros también lo usan de todos modos:http: //code.google.com/mobile/analytics/docs/iphone

Sé que ya teníamos algunas respuestas en Stack Overflow, pero no son totalmente específicas de Objective-C como lenguaje dinámico: Objective C tiene categorías, mientras que muchos otros lenguajes no.

¿Así que cuál es tu opinión? ¿Sigues usando Singleton? Si es así, ¿cómo puede hacer que su aplicación sea más comprobable?

Actualizad: Creo que necesitamos usar códigos como ejemplo para una discusión más concreta, por lo que muchas discusiones sobre SO se basan en la teoría sin una sola línea de código

Usemos el SDK de iOS de Google Analytics como ejemplo:

// Initialization
[[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-0000000-1"
                                        dispatchPeriod:kGANDispatchPeriodSec
                                              delegate:nil];
// Track page view
[[GANTracker sharedTracker] trackPageview:@"/app_entry_point"
                                   withError:&error];

La belleza del código anterior es una vez que haya inicializado utilizando el método " startTrackerWithAccountID ", puedes ejecutar el método" trackPageview "en todas sus aplicaciones sin pasar por las configuraciones.

Si cree que Singleton es malo, ¿puede mejorar el código anterior?

Muchas gracias por tu aporte, que tengas un feliz viernes.

Respuestas a la pregunta(4)

Su respuesta a la pregunta