2010-02-25 3 views
0

이 질문은 페이스 북 라이브러리를 넘어서서 정말로 일반적인 아키텍처 질문입니다. FacebookSession 클래스가있는 Facebook AS3 라이브러리를 사용하고 있습니다. 이 클래스에는 Facebook API에 대한 인증 된 호출을 할 수 있도록 Facebook 세션에 대한 데이터가 포함되어 있습니다.Flex AS3 프로젝트의 FacebookSession 객체는 어디에 보관해야합니까?

저는 플렉스 앱 전체에서 페이스 북 API를 사용하고 있으며 싱글 톤 클래스에 저장하려고합니다. 나는 이것이 꽤 좋은 선택이라고 생각하지만 누군가가 가능한 건축에 대해 다른 견해를 가지고 있는지 궁금해하고 있었다.

감사합니다.

답변

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의 프록시 내부에 배치됩니다).

그렇지 않으면 싱글 톤으로 충분합니다.

+0

너무 큰되지 않습니다. 나는 5000 줄 미만의 코드를 추측하고있다. PureMVC를 사용하는 것은 좋은 생각이지만 여기 개념에 초점을 맞추고 싶습니다. 즉, "프레임 워크를 사용하고 올바른 위치에 놓이게됩니다"라는 대답은 충분하지 않습니다. 어쩌면 당신은 프록시가 무엇인지 그리고 그것이 어떻게 도움이 될 수있는 더 나은 옵션이 될 수 있는지 설명합니다. 감사! – Tony

관련 문제