Синглтон & Уведомление - PullRequest
0 голосов
/ 11 апреля 2011

Я уже некоторое время занимаюсь разработкой приложений для какао, и у меня есть концептуальный вопрос относительно «шаблона» Синглтона и использования NSNotificationCenter для связи.

Предположим, у меня есть класс, который отвечает за хранение учетных данных пользователя в приложении. Давайте назовем это UserAccountController. Такой класс предоставляет открытые методы для выполнения операций входа / выхода и уведомляет любой заинтересованный объект о том, что такие операции были выполнены (например: в приложении панели вкладок я хотел бы обновить все UIViiewControllers, когда пользователь вышел из системы) ,

По моему мнению, не имеет смысла иметь более одного UserAccountController объекта в приложении, также второй объект UserAccountController может также публиковать уведомления на NSNotificationCenter, что может вызвать проблемы для объектов. зарегистрирован для получения таких уведомлений.

Учитывая эту ситуацию, у меня есть два вопроса:

  1. Какой шаблон использовать в таких классах, как UserAccountController.
  2. Любой класс, который использует NSNotifications для потока информации в приложении, должен обязательно реализовывать «шаблон» Singleton?

Анализируя классы Apple, я обнаружил, что вопрос 2) имеет смысл, но я бы хотел избежать «шаблона» Синглтона.

Есть какие-нибудь подсказки?

1 Ответ

1 голос
/ 11 апреля 2011

Я бы сохранял учетные данные пользователя в UserAccountModel объекте.Этот объект будет содержать среди прочего мое текущее состояние, то есть статус входа в систему.Всякий раз, когда этот статус изменяется, он публикует уведомление об этом факте.Мой UIApplicationDelegate будет содержать ссылку на эту модель.Теперь, скажем, у меня есть представление, где пользователь вводит учетные данные для входа в систему, LoginView.Мой MVC будет UserAccountModel -> LoginViewController -> LoginView.

...