저는 GWT를 배우기 만하면됩니다. 그래서 나는 여전히 모든 특징과 특징을 정리하려고합니다. 나는 그들이 MVP 패턴을 보여주는 예제를 통해 읽고 있는데, 나는 한 가지에 대해 궁금해하는 것을 제외하고는 꽤 많이 얻는다.스케일링 gwt의 "연락처"(샘플 프로젝트) MVP가 포함 된 AppController
그들이 사용하는 AppController는 ValueChangeHandler 인터페이스를 구현하고 onValueChange 메서드는 기록이 변경되면 트리거됩니다.
내 문제는 AppController의 onValueChange입니다. (예제 프로젝트를 본 적이없는 사람이라면 아래에 포함 시켰습니다.) 그것은 전송 된 히스토리 토큰에 대한 문자열 비교를 수행하고 적절한 표현자를 인스턴스화하여 조치를 처리합니다. 이것은 3 가지 동작을 가진 샘플 앱의 경우 모두 멋지고 멋지지만, 더 많은 액션이있는 실제 앱에이를 어떻게 스케일할까요?
이 패턴을 고수하면 꽤 큰/못생긴 else if
이 생깁니다. 그러나 저는 GWT (및 java)가 아직 너무 커서 더 큰 응용 프로그램의 패턴을 추측 할 수 없습니다.
도움을 주시면 대단히 감사하겠습니다.
public class AppController implements Presenter, ValueChangeHandler<String> {
...
public void onValueChange(ValueChangeEvent<String> event) {
String token = event.getValue();
if (token != null) {
Presenter presenter = null;
if (token.equals("list")) {
presenter = new ContactsPresenter(rpcService, eventBus, new ContactsView());
}
else if (token.equals("add")) {
presenter = new EditContactPresenter(rpcService, eventBus, new EditContactView());
}
else if (token.equals("edit")) {
presenter = new EditContactPresenter(rpcService, eventBus, new EditContactView());
}
if (presenter != null) {
presenter.go(container);
}
}
}
}