java - MVP:View 应该实现 Presenter 的接口(interface)还是相反?

标签 java gwt mvp gwt-mvp

我正在使用 GWT 迈出第一步。 看完有疑问:

在第一个示例中,Presenter 定义了View 的接口(interface)。

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 的接口(interface)。

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();
}

这种差异的想法是什么?

我应该选择哪个?

最佳答案

我认为您应该在问题中使用“定义”一词而不是“实现”,如果是这样,那么哪个类定义接口(interface)并不重要。

您可以通过在自己的文件中定义接口(interface)来做一些不同的事情。归根结底,重要的是 Presenter 实现 Presenter 接口(interface)和 View 实现 View 接口(interface)。

关于java - MVP:View 应该实现 Presenter 的接口(interface)还是相反?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3309029/

相关文章:

java - 项目选择上带有微调器的弹出窗口不起作用

java - 在没有哨兵的情况下结束 while 循环

java - Eclipse 和 GWT 调试问题

asp.net - 如何使用 MVP 在 GridView 中绑定(bind)数据并对其进行操作

mvp - Model-View-Presenter 和 Model-View-Adapter 有什么区别?

.net - nodejs 中的示例 Model-View-Presenter 应用程序

java - 适配器和 ListView

java - 扫雷程序中的 NullPointerException

java - 如何从 eclipse 嵌入式 tomcat 服务器的自动发布中排除监视的资源

GWT SimplePager - LastPageButton 被禁用?