2011-03-22 4 views
1

내 Flex 응용 프로그램의 클래스 중 하나에서 응용 프로그램의 다른 부분에서 주기적으로 업데이트되는 사전이 있습니다. 그것은 일종의 사용자 선호도를 포함하고 있으며 로컬 공유 객체와 동기화 상태로 유지하려고합니다. 사전이 클래스 초기화 중에 읽히고 요소가 변경, 추가 또는 삭제 될 때 로컬 저장소에 저장되어야합니다.사전을 로컬 공유 객체와 동기화하는 가장 좋은 방법은 무엇입니까?

"사전"개체는 "개체"만 상속하며 ArrayCollection의 "collectionChange"와 같은 변경 이벤트가 없습니다. 따라서 이벤트를 수신하고 이벤트 처리기에서 공유 객체를 조작하여 사전을 동기화 할 수 없습니다.

또 다른 가능한 해결책은 사전을 비공개로 만들고 내 수업의 특수한 방법을 사용하여이를 조작하는 것입니다. 뭔가 같은 :

public function setValue(key:String, value:String):void 
public function getValue(key:String):String 
public function delValue(key:String):void 

바인딩을 사용하면 실제 악몽이 될 것이므로 응용 프로그램의 다른 많은 부분을 변경해야합니다.

사전을 로컬 저장소와 어떻게 동기화 하시겠습니까? 어떤 아이디어라도 감사 할 것입니다. 미리 감사드립니다!

답변

1

흠, 흥미로운 문제를 사용하려고 할 것입니다. 개인적으로는 동적 속성 대신 최종 속성을 사용하여 데이터 구조를 올바르게 다시 설계해야한다고 생각합니다.

그러나 나는 모든 것을 완전히 다시 쓰지 않고 유일한 옵션은 x 초마다 실행되는 타이머를 설정하고 공유 된 개체와 동기화하는 것이라고 생각합니다. 이는 여러 가지 이유로 이상적이지는 않지만, 애플리케이션을 위해 더 나은 데이터 모델을 완성 할 때까지는 작동합니다.

관련 문제