当前位置: 首页 > 面试题库 >

MVP:View应该实现Presenter的界面,反之亦然吗?

谷德本
2023-03-14
问题内容

我正在与做我的第一步GWT。阅读后我有一个问题:

  • 大型应用程序开发和MVP
  • 大规模应用程序开发和MVP-第二部分

在第一个示例中,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接口。



 类似资料:
  • 问题内容: 似乎它们都可以让您检索最小值(这是我的Prim算法所需的),并迫使我删除并重新插入密钥以更新其值。不仅对于本示例,而且一般来说,使用一个相对于另一个有任何优势吗? 问题答案: 一般来说,使用堆仅跟踪最小元素的工作量较小。 一棵树更有组织性,并且需要更多计算才能维护该组织。但是,如果您需要访问 任何 键,而不仅仅是最小键,那么堆就不够了,并且树的额外开销是合理的。

  • 问题内容: 有没有简单的方法可以将(Java 8中引入的)转换为对象? “简单”是指比这更简单: 对我来说似乎有点尴尬。 由于我们仅对日期部分感兴趣,并且两个对象都没有时区信息,因此为什么要明确引入时区?转换应隐式采用午夜时间和系统默认时区。 问题答案: 其实有。有一个静态方法的valueOf在这不正是那个对象。所以我们有 就是这样。没有明确设置时区,因为本地时区是隐式获取的。 从文档: 提供的L

  • 问题内容: 如何在Python中将HTML实体转换为Unicode,反之亦然? 问题答案: 您需要有BeautifulSoup。

  • 我正在通过ajax从jsp页面向servlet发送orderid,如果order表的orderid不匹配,它将在同一个jsp页面中显示一条错误消息,通过该页面可以发出请求。现在我的问题是,当我发送一个有效的orderid时,它应该通过servlet将页面转发到另一个jsp页面,而servlet没有发生,也没有显示任何错误 jsp页面 jquery代码 $(#finduy')。点击(功能(事件){

  • 好的,我有三个实体:主题、用户、类别、图片。用户有图片,主题有用户和类别。 我还有一个话题要讲 我可以将ModelMapper注入TopicService,并使用它进行转换,但它不能按照我的需要工作,在这种情况下,如果我试图将Topic转换为TopicDTO,在转换后的TopicDTO对象中,UserDTO和CategoryTo将为null,但在调试中,在转换之前,在Topic对象中,Catego

  • 问题内容: 我需要转换一个随机生成的盐值并将其存储在数据库中。为了将其存储在数据库中,我将其转换为字符串。然后,为了检索原始值,我将其转换回字节。但是两个值都不匹配。我已经尝试过“ UTF-8”,“ UTF-16”,BASE64Encoder。 上面代码的输出(执行两次): 和 问题答案: 在上面编写代码时,先打印,然后实际打印的是数组对象方法的输出,这只是默认的Object 方法。所以我看不出您