2012-01-16 2 views
1

다음은 무엇을 의미합니까? GWT Develeopment에서UI 및보기 측면에서 MVP

목표는

우리는 바보 뷰를 필요로하지 못하는 사용자 인터페이스 (보기 여기에 의미 하는가 무엇과 MVP에 무슨 UI?의 혼란, 작은 예제와 함께 설명하십시오, 간단한 일)

는 스와핑 것은 여기에 어떤 다른 플랫폼 조회수 밖으로

• 스왑 ((작은 예제와 함께 간단한 일을 설명해주십시오, 상태는 얘기입니다) 조회수 내 상태를 피 •?하지 그는 변화를 의미 다른 기술의 fr 톰 GWT는

답변

2
  1. 그럼 난 당신이 당신의보기에서 복잡한 비즈니스 로직 및 모델 상태를 피하기 위해 시도해야한다는 것을 의미 가정

    는 간단한 예 :

    감사를 사용하여 설명하십시오) 플렉스 . 사람들이 GWT에서 가능한 한 바보처럼 보이는 것을지지하는 이유는 뷰에는 위젯 관련 코드가 있으며 GWT에서 위젯 관련 코드를 테스트 할 때마다 JUnit 테스트가 아닌 느린 GWTTestCase으로 폴백해야합니다.
    TDD (Test Driven Development)에서는 테스트에 많이 의존하고 있으며 효율적인 개발을 위해 이러한 테스트가 빠르게 실행됩니다.
    GWT에서하려고하는 것은 뷰를 가능한 바보처럼 유지하여 많은 테스트 (어쩌면 통합 테스트)를 필요로하지 않고 모든 비즈니스 관련 코드를 발표자에게 제공하는 것입니다. 발표자는 위젯 관련 코드가 없어야하며 모델 상태를 처리해야합니다. 그런 다음 빠른 JUnit 테스트를 사용하여 발표자의 비즈니스 로직 코드를 완전히 커버 할 수 있습니다. 자세한 내용은 herehere을 참조하십시오.

  2. 다른 플랫폼에 대한보기의 스왑 아웃은 예를 들어 다른 장치에 대한보기 구현을 달리하는 것을 의미합니다. 서로 다른 장치에서 볼 때 메일 응용 프로그램에 대해 다른 레이아웃을 갖는 것이 좋습니다.
    화면 크기가 충분한 타블렛에서는 왼쪽에 메일 목록이 있고 중앙 부분에 실제 메일 내용이있을 수 있습니다. 그러나 휴대 전화에서는 메일 목록 만 표시하고 메일을 클릭하면보기가 메일 내용으로 변경됩니다.
    메일 응용 프로그램의 비즈니스 논리는 레이아웃 /보기와 독립적입니다. 따라서이 코드를 Presenter에 넣고 예를 들어 사용자 에이전트를 기반으로 쉽게 스왑 아웃 할 수있는 방식으로 디자인을 시도합니다. GWT 저장소에있는 mobilewebapp 샘플 앱과이 I/O conference talk을 확인할 수 있습니다.

1

최근 내가 MVP 위젯에 대해 알게 된 몇 가지 생각은 이론적으로는 정확하지 않지만 나와 함께 일하는 팀은 괜찮습니다.

  1. MVP에는 하나의 V 개념 만 있습니다. MVP에서 V 대 UI를 피하십시오. 그들은 같은 개념입니다. (UiBinder는 MVP와 아무 관련이 없지만 UiBinder를 사용하여 MVP 위젯에 V를 만들 수 있습니다.)
  2. 모델은 사용자의 데이터이므로 P 내부에서만 수정해야합니다.
  3. V는이 데이터의 화면이므로 절대로 변경해서는 안됩니다.
  4. P는 데이터, 위젯의 동작, 다른 위젯 및 서비스 (RPC, 나머지 ...)에 대한 이벤트를 처리합니다.
  5. V에서 데이터의 인스턴스를 유지하지 마십시오.
  6. V와 P는 서로 처리기로 통신합니다. 이 작업에는 두 가지 방법이 있습니다. A) P에서 직접 View 이벤트를 처리합니다 (P에서 정의한 인터페이스를 구현하도록합니다) 또는 B)은 View에 P 참조를 전달합니다. P와 V가 인터페이스를 계약으로 구현하도록합시다. 나는 A을 추천한다.
  7. 일부 데이터는 V (TextArea, Combos ...)에서 생성되어 결국 모델의 일부가됩니다. P에서 변경 사항을 유지하려고합니다 (6에서 설명).
  8. P1과 P2 및 P3 및 ... EventBus를 통해 서로 통신합니다.
  9. IsWidget을 구현하면 다른 위젯의 V. (중첩 위젯)에서 MVP 위젯을 인스턴스화 할 수 있습니다. 이렇게하면 큰 MVP를 작은 MVP 위젯으로 쉽게 나눌 수 있습니다 (다른 개발자와 쉽게 추적 할 수 있습니다 ...).
  10. 6A를 수행하면 JAVA가 위젯 동작 (P)을보기 만 조롱하는 것을 쉽게 테스트 할 수 있습니다.
  11. 셀렌 등으로 V를 테스트하십시오.
  12. 6A) 다른 V를 수행하면 P 내부 인터페이스를 구현할 수 있습니다. 하나는 모바일 용이고 다른 하나는 PC 용입니다 ... 말하기가 쉽습니다.

이것이 전부입니다. 이것이 도움이 되길 바랍니다.

+1

여기 왜 부정 투표가 효과가 있었는지에 대한 제안. –