Где я должен хранить свой объект FacebookSession для проекта Flex AS3? - PullRequest
0 голосов
/ 25 февраля 2010

Этот вопрос выходит за рамки библиотеки Facebook и на самом деле является общим вопросом архитектуры. Я использую библиотеку Facebook AS3, которая имеет класс FacebookSession. Класс содержит данные для сеанса Facebook, чтобы я мог совершать аутентифицированные вызовы API Facebook.

Я использую API Facebook во всем своем приложении Flex, и у меня возникает желание сохранить его в классе Singleton. Я думаю, что это довольно хороший вариант, но мне было интересно, если бы у кого-то была другая точка зрения на возможную архитектуру.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 26 февраля 2010

Опираясь на ответ Пбиркова, я бы порекомендовал использовать подход MVC, независимо от того, решите ли вы использовать явную основу для этого.

В этом случае FacebookSession будет классом модели, и я обычно хотел бы, чтобы модель была пакетом верхнего уровня (после всего, что есть в com.domainname). Так что в этом случае я мог бы сделать что-то вроде com.tony.model.facebook.FacebookSession для структуры пакета.

Для такого маленького проекта, как ваш, синглтон вполне подойдет. Как только кодовая база становится намного больше, синглтоны становятся опасными, потому что теперь у вас много глобальных состояний, и это может запутаться, если у вас есть тонна классов, обращающихся к синглтону со всего кода (см. http://misko.hevery.com/code-reviewers-guide/flaw-brittle-global-state-singletons/),, потому что он ломается слабое сцепление.

Как только ваш проект станет больше, вы можете использовать внедрение зависимостей, чтобы избежать этой проблемы. В этом случае могут пригодиться такие фреймворки, как Swiz и т. Д.

НТН,

Karthik

1 голос
/ 25 февраля 2010

Насколько большим будет ваше приложение? Вы могли бы рассмотреть использование фреймворка, такого как PureMVC (http://www.puremvc.org).. Это помогает решить, куда поместить определенные вещи (в этом случае ваша FaceBookSession будет помещена в прокси в PureMVC).

В остальном синглтон звучит достаточно хорошо.

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