WEB开发网
开发学院软件开发Java Google App Engine for Java: 第 2 部分:构建杀手... 阅读

Google App Engine for Java: 第 2 部分:构建杀手级应用程序

 2009-09-17 00:00:00 来源:WEB开发网   
核心提示: 清单 7. ContactServiceAsync packagegaej.example.contact.client;importjava.util.List;importcom.google.gwt.user.client.rpc.AsyncCallback;publicinterface

清单 7. ContactServiceAsync

   
package gaej.example.contact.client; 
 
import java.util.List; 
 
import com.google.gwt.user.client.rpc.AsyncCallback; 
 
public interface ContactServiceAsync { 
  void listContacts(AsyncCallback<List <Contact>> callback); 
  void addContact(Contact contact, AsyncCallback<Void> callback); 
  void removeContact(Contact contact, AsyncCallback<Void> callback); 
  void updateContact(Contact contact, AsyncCallback<Void> callback); 
} 

注意,ContactService 实现了 RemoteService 接口并定义了一个 @RemoteServiceRelativePath,指定了 “联系人” 的相对路径。相对路径与您在 web.xml 文件中为服务定义的路径是对应的(必须匹配)。ContactServiceAsync 包含回调对象,因此 GWT GUI 可以收到来自服务器的调用的通知,而不会阻塞其他客户机行为。

避免编写杂乱的代码

我并不喜欢编写杂乱的代码,因此在可能的情况下会尽量避免编写这类代码。这类代码的一个例子就是一组匿名内部类,这些类的方法定义匿名内部类。这些内部类反过来执行回调,调用在某个内部类中以内联方式定义的方法。坦白说,我无法阅读或是理解这些纠缠在一起的代码,即使是我自己编写的!因此,为了将代码稍微简单化,我建议将 GWT GUI 分解为三个部分:

ContactListEntryPoint

ContactServiceDelegate

ContactListGUI

ContactListEntryPoint
是主要的入口点;它执行 GUI 事件连接。ContactServiceDelegate 封装 ContactService 功能并隐藏内部类回调连接。ContactListGUI 管理所有 GUI 组件并处理来自 GUI 和 Service 的事件。ContactListGUI 使用 ContactServiceDelegate 发出 ContactService 请求。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Google App Engine

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接