Java 如何将新视图组件绑定到GWT';什么是MVP模式?

Java 如何将新视图组件绑定到GWT';什么是MVP模式?,java,design-patterns,gwt,mvp,Java,Design Patterns,Gwt,Mvp,我一直在阅读,我想知道你们是如何在这个建议的模式实现方式中处理动态添加的组件的 假设您有一个表,其中每个表行中有三个按钮,可以动态添加表行。你们建议如何将这些绑定到演示者 如果按照谷歌建议的结构,新行将在视图中生成,该视图没有与演示者的直接链接,也不能调用它(因此,不调用bindNewButtons(Button,Button,Button)-ish-type方法) 那么,这里的好做法是什么?我在想,由于演示者将处理在视图内的小部件中添加新行的事件(处理方式与中相同,在视图中激发生成新行的方法)

我一直在阅读,我想知道你们是如何在这个建议的模式实现方式中处理动态添加的组件的

假设您有一个表,其中每个表行中有三个按钮,可以动态添加表行。你们建议如何将这些绑定到演示者

如果按照谷歌建议的结构,新行将在视图中生成,该视图没有与演示者的直接链接,也不能调用它(因此,不调用
bindNewButtons(Button,Button,Button)
-ish-type方法)

那么,这里的好做法是什么?我在想,由于演示者将处理在视图内的小部件中添加新行的事件(处理方式与中相同,在视图中激发生成新行的方法),因此我可以在视图中有一个
getRowButtons(int index)
方法,然后使用它来检索组件,并在添加组件后绑定它们

不过,我相信有一种更聪明的方法可以做到这一点,所以我在这里寻求一些建议。

显示了一个视图,确实有对演示者的引用

观点:

private Presenter<T> presenter;

public void setPresenter(Presenter<T> presenter) {
    this.presenter = presenter;
}
私人演讲者;
公共void setPresenter(Presenter-Presenter){
this.presenter=演示者;
}
演讲者:

public interface Presenter<T> {
    void onAddButtonClicked();
    void onDeleteButtonClicked();
    void onItemClicked(T clickedItem);
    void onItemSelected(T selectedItem);
}
公共界面演示者{
void onAddButtonClicked();
void onDeleteButtonClicked();
单击无效(T单击编辑项);
已选择void onitem(T selectedItem);
}

现在,您可以在presenter界面中定义一个方法,该方法具有一个指示单击了哪一行的参数。如果您不想让视图知道演示者界面,则始终可以选择在事件总线上触发演示者可以响应的事件。根据您的问题,第一个选项似乎是一个更合理的答案。

首先,感谢您为我指出本系列的第二篇文章。这很有帮助。不过,我只想指出,我并不是真的想让演示者知道行的点击。我说的是在运行时添加的小部件(在本例中是位于行中的按钮)上绑定事件:)引用演示者为我提供了另一个执行此操作的选项:)谢谢:)+1不客气。如果您有对演示者的引用,您可以始终使用某种通用功能(例如bindDelete(HasClickHandlers hasClick,Person))绑定它们,然后只注册ClickEvents(但我认为您已经得出了这个结论;))。