Class GWT教程&x27;包含在类中的接口的代码

Class GWT教程&x27;包含在类中的接口的代码,class,gwt,interface,mvp,Class,Gwt,Interface,Mvp,从几天以来,我一直在玩GTK,在浏览示例代码和教程时,我在示例项目下载中偶然发现了这段代码 package com.google.gwt.sample.contacts.client.presenter; 导入com.google.gwt.sample.contacts.client.contacts服务异步; 导入com.google.gwt.sample.contacts.client.event.AddContactEvent; 导入com.google.gwt.sample.contac

从几天以来,我一直在玩GTK,在浏览示例代码和教程时,我在示例项目下载中偶然发现了这段代码

package com.google.gwt.sample.contacts.client.presenter;
导入com.google.gwt.sample.contacts.client.contacts服务异步;
导入com.google.gwt.sample.contacts.client.event.AddContactEvent;
导入com.google.gwt.sample.contacts.client.event.EditContactEvent;
导入com.google.gwt.sample.contacts.shared.ContactDetails;
导入com.google.gwt.event.dom.client.ClickEvent;
导入com.google.gwt.event.dom.client.ClickHandler;
导入com.google.gwt.event.dom.client.HasClickHandlers;
导入com.google.gwt.event.shared.HandlerManager;
导入com.google.gwt.user.client.Window;
导入com.google.gwt.user.client.rpc.AsyncCallback;
导入com.google.gwt.user.client.ui.haswidget;
导入com.google.gwt.user.client.ui.Widget;
导入java.util.ArrayList;
导入java.util.List;
公共类ContactsPresenter实现演示者{
私人名单联系人详情;
公共界面显示{
HasClickHandlers getAddButton();
HasClickHandlers getDeleteButton();
HasClickHandlers getList();
无效设置数据(列表数据);
int getClickedRow(单击事件事件);
列出getSelectedRows();
Widget asWidget();
} 

在ContactsPresent类中创建一个界面显示

在Turrial上,一个代码片段

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();
  }
}
公共类联系人Presenter实现Presenter{
...
公共界面显示值{
HasClickHandlers getAddButton();
HasClickHandlers getDeleteButton();
HasClickHandlers getList();
无效设置数据(列表数据);
int getClickedRow(单击事件事件);
列出getSelectedRows();
Widget asWidget();
}
}
可以找到该教程


当我们在类中声明接口时,代码应该做什么?有人能解释一下吗?

这是一个公共嵌套接口(与私有或包私有相对)和的行为方式与顶级接口相同。唯一的区别是通过ContainingClass.NestedInterface语法引用它。其余的都是相同的


在GWT MVP的特定情况下,Presenter使用此嵌套接口访问视图,其中视图实现Presenter.Display。GWT MVP的目标之一是拥有可测试的Presenter(其中包含业务逻辑),这意味着您必须能够替换视图(这是一个GUI元素,依赖于实现)使用模拟视图。为实现此目的,将为演示者定义一个中间接口以访问视图。

这是一个公共嵌套接口(与私有或包私有相对)和的行为方式与顶级接口相同。唯一的区别是通过ContainingClass.NestedInterface语法引用它。其余的都是相同的


在GWT MVP的特定情况下,Presenter使用此嵌套接口访问视图,其中视图实现Presenter.Display。GWT MVP的目标之一是拥有可测试的Presenter(其中包含业务逻辑),这意味着您必须能够替换视图(这是一个GUI元素,依赖于实现)使用模拟视图。为了实现这一点,为演示者定义了一个中间接口来访问该视图。

这违反了java语法,对吗?顺便问一下,我们希望在GWT中看到哪些类似的差异?不,如果是违反,编译器会抱怨。嵌套接口是正常的:它违反了java语法x对吗?顺便问一下,我们希望在GWT中看到什么样的相似差异?不,如果是冲突,编译器会抱怨。嵌套接口是正常的:
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();
  }
}