2013-01-17 7 views
0

나는 pureMVC를 배우고 있으며 내 응용 프로그램 중 하나에 프레임 워크를 구현하려고합니다. 나는 다음과 같은 경우를 가지고있다 :Flex PureMVC : 다음과 같은 경우 프록시가 View 구성 요소의 참조를 유지할 수 있습니까?

나의 주된 응용 프로그램은 다른 종류의 커스텀 컴포넌트를 추가하는데 사용되는 Canvas를 가지고있다. 사용자 지정 구성 요소 중 하나는 "검색 구성 요소"입니다 (여러 인스턴스가 페이지에 만들어집니다). 내 검색 구성 요소에는 텍스트 파일 및 검색 버튼이 있으며 다음 단계에 따라 검색을 시작합니다.

1 클릭 검색 버튼은 사용자 지정 이벤트를 전달하며 사용자 지정 이벤트는 검색 구성 요소를 속성으로 참조 유지합니다.

2 - My AppMediator는 사용자 지정 이벤트를 수신하고 검색 텍스트와 함께 현재 검색 구성 요소의 참조를 가져옵니다.

3 중재자가 알림 (sentNotification (AppConstants.SEARCH_CLICKED, 구성 요소))을 보냅니다.

4 - SEARCH_CLICKED 알림이있는 명령을 등록했습니다.

5 명령은 WebserviceProxy를 검색하고 해당 검색 (텍스트) 메소드를 호출합니다.

6-WebserviceProxy는 원격 웹 서비스와 통신하고 asyncToken을 사용하여 결과를 얻습니다.

내 질문은 : 그것은 검색을 시작하지만 검색 웹 서비스는 시간이 좀 걸립니다하고 결과를 얻을 때 내 명령은 사용자 정의 검색 구성 요소에 대한 참조를 가지고있다. 검색을 시작한 사용자 지정 검색 구성 요소로 결과를 다시 처리하려면 어떻게해야합니까? 이후 검색 컴포넌트의 인스턴스가 여러 개 있습니다. 해당 구성 요소의 참조를 유지하는 가장 좋은 장소는 무엇입니까? WebserviceProxy에 변수를 추가하여 해당 참조를 유지하고 결과를 넘겨야합니까? 아니면 해당 구성 요소의 참조를 유지하기 위해 글로벌 프록시를 만들어야합니까?

감사

답변

0

Anton의 대답을 바탕으로, 나는 다시 생각하고 dependencis를 분리하려고했습니다.결과적으로 Mediator의 생성자에 다른 ID를 제공하여 검색 위젯의 각 인스턴스를 "SearchMediator"로 따로 조정하려고했습니다. 이제 검색 위젯이 새로운 검색을 포함 할 때 중재자가 Command를 호출하고 Command가 Proxy 검색 메소드를 호출하여 실제 검색을 수행하고 DB에서 결과를 가져오고 Notification을 보냅니다. SearchMediator는 해당 알림을 처리하고 결과를 적절한 UI로 전달합니다.

1
내가 몇 년 동안 PureMVC을 사용하고

하고 나는 그것을 좋아하지!

아직 주요 구성 요소의 역할과 공동 작업을 이해하지 못했을 것 같습니다.

  1. 명령과 UI 요소 사이에 어떤 종속성도 있어서는 안됩니다. 중재자는 UI 구성 요소에서 구체적인 값을 가져와 알림을 통해 보내야합니다. 이 경우 명령과 프록시는 텍스트 값만 가져오고 아무런 문제가 없습니다. 소스는 무엇입니까! 잠시 후 UI를 변경하고 검색 값을 결정하기 위해 사용자 측에 다른 구성 요소가있을 것이라고 가정합니다. 귀하의 경우에는 프록시와 명령을 변경해야합니다. 그것은 나쁠 것입니다.

  2. 프록시에는 명령 및 조정자에 대한 정보가 없을 수 있습니다. 다른 구성 요소와 상호 작용할 수있는 기능 만 제공 할 수 있으며 흥미로운 정보를 알지 못해도 새로운 정보로 알림을 전송합니다.

프레임 워크에 대한 설명을 한 번 더 읽고 질문을 작성하십시오. 물건을 이해하는 데 몇 가지 문제가 있었지만 문제가 있습니다.

+0

답장을 보내 주셔서 감사합니다. 역할에 대한 설명이 매우 명확하여 명령과 UI 요소간에 종속성을 구분할 생각이 들었습니다. – user1858886