lternativa a Singleton no Objective-C para melhor design de aplicativ

Parece que muito código Objective-C está usando Singleton hoje em di

Enquanto muitas pessoas reclamam de Singleton, por exemplo, Google Onde Todos os Singletons Foram?), seus colegas engenheiros também o usam de qualquer maneira:http: //code.google.com/mobile/analytics/docs/iphone

Sei que já tivemos algumas respostas no Stack Overflow, mas elas não são totalmente específicas ao Objective-C como uma linguagem dinâmica: o Objective C possui categorias, enquanto muitos outros idiomas nã

Então qual é a sua opinião? Você ainda usa Singleton? Em caso afirmativo, como você torna seu aplicativo mais testável?

Atualizad: Acho que precisamos usar códigos como exemplo para discussões mais concretas, muitas discussões sobre SO são baseadas na teoria sem uma única linha de código

Vamos usar o SDK do Google Analytics para iOS como exemplo:

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

A beleza do código acima é quando você inicializa usando o método " startTrackerWithAccountID ", você pode executar o método" trackPageview "em todos os seus aplicativos sem passar pelas configurações.

Se você acha que Singleton é ruim, pode melhorar o código acima?

uito obrigado pela sua contribuição, tenha uma feliz sexta-feir

questionAnswers(4)

yourAnswerToTheQuestion