我应该在哪里保留我的FacebookSession对象用于Flex AS3项目?

时间:2010-02-25 17:32:15

标签: flex actionscript-3 session singleton

这个问题超出了Facebook库,实际上是一个通用的架构问题。我正在使用Facebook AS3 lib,它有一个FacebookSession类。该类包含facebook会话的数据,以便我可以对Facebook API进行经过身份验证的调用。

我在我的Flex应用程序中使用Facebook API,我很想将它存储在Singleton类中。我认为这是一个非常好的选择,但是想知道是否有人对可能的架构有不同的观点。

谢谢!

2 个答案:

答案 0 :(得分:2)

根据Pbirkoff的回答,我建议使用MVC方法,无论你是否决定采用明确的框架来实现这一目标。

在这种情况下,FacebookSession将是一个模型类,我通常喜欢将模型作为顶级包(在所有com.domainname之后)。所以在这种情况下,我可能会为com.tony.model.facebook.FacebookSession做一些包结构。

对于像你这样的小项目,Singleton很好。一旦代码库变得越来越大,单例变得危险,因为现在你有很多全局状态,如果你有大量的类从全部代码访问单例,这会变得很混乱(参见http://misko.hevery.com/code-reviewers-guide/flaw-brittle-global-state-singletons/),因为它打破松耦合。

一旦你的项目变大,你可以考虑使用依赖注入来避免这个单例问题。在这种情况下,像Swiz等框架可以派上用场。

HTH,

KARTHIK

答案 1 :(得分:1)

您的申请量有多大?您可以考虑使用像PureMVC(http://www.puremvc.org)这样的框架。它有助于确定放置某些东西的位置(在这种情况下,您的FaceBookSession将被放置在PureMVC中的代理中)。

否则,单身听起来不错。