MVP:View应该实现Presenter的界面,反之亦然吗?
问题内容:
我正在与做我的第一步GWT
。阅读后我有一个问题:
在第一个示例中,Presenter
定义的接口View
。
public class ContactsPresenter implements Presenter {
...
public interface Display extends HasValue<List<String>> {
HasClickHandlers getAddButton();
HasClickHandlers getDeleteButton();
HasClickHandlers getList();
void setData(List<String> data);
int getClickedRow(ClickEvent event);
List<Integer> getSelectedRows();
Widget asWidget();
}
}
在第二个中,View
定义的接口Presenter
。
public interface ContactsView<T> {
public interface Presenter<T> {
void onAddButtonClicked();
void onDeleteButtonClicked();
void onItemClicked(T clickedItem);
void onItemSelected(T selectedItem);
}
void setPresenter(Presenter<T> presenter);
void setColumnDefinitions(List<ColumnDefinition<T>> columnDefinitions);
void setRowData(List<T> rowData);
Widget asWidget();
}
这种差异的主意是什么?
我应该选择哪一个?
问题答案:
我认为您应该在问题中使用“定义”一词,而不是“实现”,如果是这种情况,那么 哪个类定义接口都没有关系。
您可以通过在其自己的文件中定义接口来做一些不同的事情。最终,重要的是演示者实现了Presenter接口,而视图实现了View接口。