J'ai donc lu sur les avantages et les inconvénients de l'utilisation de Singleton, et j'ai un scénario que je ne suis pas sûr si je devrais en utiliser un, et Je pensais vous consulter les gars.Dois-je utiliser singleton - Http Connexion au serveur - Conception Iphone App
J'écris une application Iphone qui, de temps en temps, doit communiquer au serveur (HTTP) des informations sur l'utilisateur connecté. Ce service web est appelé depuis différentes parties de mon application.
Ce que je réellement besoin sont deux types de classes:
- Responsable de la communication avec le serveur - responsable de la mise en http, l'URL, en-tête, etc. paramètres et
2.classes pour chaque type d'API de service Web - pour la classe UpdateUserInfo exmpale ou la classe SendResults. Ce c
La 2ème classe utiliserait le 1er, et tout au long de l'application, j'aurais besoin de beaucoup d'appels aux 2e classes.
Dois-je utiliser Singleton pour l'une de ces thèses? Quelle est la meilleure façon de le concevoir?
Merci les gars!
Modifier:
Exemple pour la 1ère classe (Appelons DataDownloader) méthode serait:
(NSData *) downloadDataWithRequest:(NSURLRequest *)
{
ASIHTTPRequest *dlRequest = [[ASIHTTPRequest alloc] initWithURL:[request URL]];
[dlRequest setTimeOutSeconds:20];
if(retryNum < 1)
retryNum = 1;
[dlRequest setNumberOfTimesToRetryOnTimeout:retryNum];
// and more of the same
}
ASIHTTPRequest est quelque chose que nous utilisons comme une enveloppe HTTP.
Maintenant, je ne voudrais pas appeler cette séquence de fonction chaque fois que je veux envoyer une requête HTTP au serveur, donc l'option serait de mettre cela dans une classe dédiée et de créer une nouvelle instance, ou en utilisant un singletion .
Ce que je peux faire est par exemple utilisant quelque chose comme ça:
[[UpdateUserInfo sharedInstance] updateInfo:info]
Ce qui peut être mis en œuvre par la mise en place d'un NSURLRequest en utilisant les informations param et appeler
[[DataDownloader sharedInstance] downloadDataWithRequest:InfoUrlRequest]
Maintenant, en supposant que la Les requêtes http sont asynchrones, je peux toujours générer plusieurs en même temps.
J'espère que c'est plus clair maintenant. Selon vous, quelle est la meilleure façon de le concevoir?
Voir ma modification. merci – Idan