Итак, я читал о плюсах и минусах использования Singleton, и у меня есть сценарий, в котором я не уверен, стоит ли его использовать, и я подумал проконсультироваться с вами, ребята.
I 'я пишу приложение для Iphone, которое время от времени должно сообщать серверу (HTTP) информацию о пользователе, вошедшем в систему. Этот веб-сервис вызывается из разных частей моего приложения.
Что мне действительно нужно, так это2 типа классов:
- Ответственный за связь с сервером - отвечает за настройку http, URL, заголовок, параметры и т. Д.
2.классы для каждого типаAPI веб-службы - например, UpdateUserInfo или класс SendResults.Этот c
2-й класс будет использовать 1-й, и на протяжении всего приложения мне понадобится много вызовов для 2-х классов.
Должен ли я использовать Singleton для любого из тезисов?Каков наилучший способ его разработки?
Спасибо, ребята!
Редактировать :
Пример для 1-го класса (назовем его DataDownloader).будет:
(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 - это то, что мы используем в качестве оболочки HTTP.
Теперь я не хочу вызывать эту последовательность функций каждый раз, когда хочу отправить серверHTTP-запрос, поэтому можно было бы поместить его в выделенный класс и создать новый экземпляр или использовать одиночный код.
Например, я могу использовать что-то подобное:
[[UpdateUserInfo sharedInstance] updateInfo:info]
Это можно реализовать, настроив NSURLRequest с использованием информации о параметре и вызвав
[[DataDownloader sharedInstance] downloadDataWithRequest:InfoUrlRequest]
Теперь, предполагая, что http-запрос асинхронный, я все равно могу вызывать несколько одновременно.
Надеюсь, теперь стало понятнее.Как вы думаете, это лучший способ создать его?