1

我正在开发一个足够大的 Java GWT-GAE 项目,并且我面临一些我以前没有一些 LOC 的问题。

我在 ServiceImpl 类中有几个方法,我需要直接从其他 ServiceImpl 类和 RPC 调用这些方法。我认为最好避免像 Service s = new ServiceImpl() 这样的声明,所以我想将方法​​体移动到适当的服务器端类中,让 ServiceImpl 类中的方法调用它们。这会是正确的解决方案还是有特定的模式可以遵循?如果是,那么只有一个 ServiceImpl 来包装所有的 RPC 方法不是更好吗?客户端变得有点慢,我认为这是因为我有几个这样的声明: public static final *ServiceAsync *Service = GWT.create(*Service.class);

我希望我已经清楚了。提前致谢。

安东尼奥

4

1 回答 1

1

对于服务器端实现,请考虑使用GWT-SL(服务器库),它允许您将 GWT 与 Spring 集成。您的 Service 实现类变成了简单的 Pojos,您不必担心创建它们,只需让 Spring 操心!

要在客户端创建 Service 实例,请使用此模式(在 *Service 接口内)以确保您只创建一次服务作为单例:

/**
 * Utility class for simplifying access to the instance of async service.
 */
public static class Util {
    private static UserServiceAsync instance;
    public static UserServiceAsync getInstance(){
        if (instance == null) {
            instance = GWT.create(UserService.class);
        }
        return instance;
    }
}

在客户端创建服务:

private UserServiceAsync userService = UserService.Util.getInstance();
于 2012-06-22T06:25:43.700 回答