Я создал объекты, которые являются интерфейсами для веб-службы. Одним из типичных объектов будет «TaskService». Когда клиент использует один из этих объектов, он вызывает один из методов службы (например, «GetTasks»), и служба будет асинхронно удаляться, чтобы вызвать удаленный веб-сервис, и отправить обратно полученные данные через делегат.Синглтон с делегатом: хорошая идея или плохая?
В настоящее время для использования одной из этих служб вам необходимо создать ее с [[TaskService alloc] init], но я решил, что имеет смысл сделать каждую услугу единичным объектом.
Общеизвестно, что отдельные объекты, содержащие ссылки на делегатов, являются общими? Моя основная проблема с дизайном заключается в том, что каждый объект, когда он требует использования определенной службы, должен будет установить себя как делегат перед вызовом службы, что не кажется мне совершенно правильным ... Что делать, если другой объект должны были назначить себя делегатом между вами, назначив себя делегатом и вызывая службу?
Большое спасибо заранее!
С уважением, Ник
Я понятия не имею, что такое мультиплексор делегата (какой-то вещатель?), Но для меня это слишком сложно, чтобы попробовать и реализовать, поэтому я постараюсь и не боюсь ничего подобного! Чтобы реализовать очередность операции, я был бы прав, думая, что каждый метод должен принимать делегат/параметр в качестве аргумента?Таким образом, «запросы» могут быть поставлены в очередь, а соответствующие делегаты должны быть вызваны после завершения? –
Делегат-мультиплексор - это термин, который я только что составил для кода, который вы напишете внутри своего синглтона, чтобы выяснить, кому делегировать для отправки какого-либо данного результата. Операционная система намного лучше инкапсулирует каждую операцию (выборку и уведомление делегата). Так что да, запросы будут поставлены в очередь таким образом. – Rayfleck