Как я должен использовать объект Facebook через несколько контроллеров представления - PullRequest
0 голосов
/ 21 августа 2011

В последние дни я играл с Facebook iOS API, и у меня возникли вопросы. Если у меня есть два разных контроллера представления, которым обоим нужно использовать объект Facebook, как мне поделиться объектом? И нужно ли вообще этим делиться? Я думал о создании синглтона. Я думал о создании класса SocialMedia, который имеет метод класса с именем sharedFacebook.

Затем у меня есть другой класс с именем PREFIXFacebook, где я соответствую протоколу сеанса и создаю объект. Этот класс имеет атрибут с именем facebook. Затем я создаю экземпляр этого класса в классе SocialMedia и отправляю ему метод «facebook» и назначаю возвращенный объект статической переменной Facebook в SocialMedia. Это плохой дизайн? Я не делал много одиночных игр раньше, и я даже не знаю, если это необходимо, но я не хочу дублировать код.

Другой подход заключается в том, чтобы сделать это в делегате приложения, но я прочитал здесь пост о переполнении стека и услышал в одном из видео Стэнфорда iOS, что плохо делать такие вещи с глобальными. Есть мысли?

1 Ответ

1 голос
/ 21 августа 2011

Как и в большинстве случаев, глобальные переменные неплохие в модерации.Если вы злоупотребите ими, у вас не хватит памяти, но я думаю, что в этом случае это оправдано.Синглтон по сути является глобальной переменной, и я считаю, что ваш план здесь хороший.Он не только поможет вам с Facebook, но и с другими сайтами с единым входом, такими как Twitter и Google +.

Чтобы сохранить вещи небольшим пространством, вы не хотите хранить миллион вещей вСинглтон класс.Старайтесь хранить только необходимый минимум, чтобы избежать повторной аутентификации.Вероятно, это означает только сам объект Facebook, а не дополнительный класс-оболочку для него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...