2010-02-25 57 views
0

這個問題超出了Facebook庫,並且是一個真正的通用體系結構問題。我正在使用具有FacebookSession類的Facebook AS3庫。該類包含facebook會話的數據,以便我可以對Facebook API進行認證調用。我應該在哪裏爲Flex AS3項目保留我的FacebookSession對象?

我在我的Flex應用程序中使用Facebook API,並且很想將它存儲在Singleton類中。我認爲這是一個很好的選擇,但是想知道是否有人對可能的架構有不同的觀點。

謝謝!

回答

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

你的應用程序有多大?你可以考慮使用像PureMVC這樣的框架(http://www.puremvc.org)。它有助於決定將某些東西放在哪裏(在這種情況下,您的FaceBookSession將放置在PureMVC中的Proxy內)。

否則,一個單身人士聽起來不錯。

+0

不會太大。我猜測少於5000行的代碼。使用PureMVC是一個好主意,但我想在這裏關注這個概念。換句話說,答案是「使用框架並將其放在正確的位置」是不夠的。也許如果你解釋一下代理是什麼,以及如何這可能是一個更好的選擇,可以提供幫助。謝謝! – Tony 2010-02-25 17:49:51

相關問題