Gwt 如果使用RequestFactory,如何在服务器和客户端之间共享业务逻辑?

Gwt 如果使用RequestFactory,如何在服务器和客户端之间共享业务逻辑?,gwt,requestfactory,Gwt,Requestfactory,假设我有一个雇员bean,它有一个“dateOfBirth”属性: 公共类员工{ ... 私人出生日期; ... 公共日期getDateOfBirth(){…} 公共无效setDateOfBirth(日期){…} ... } 为了使用RequestFactory,我创建了EmployeeProxy: @ProxyFor(value=Employee.class) 公共接口员工权限扩展实体权限{ ... 日期getDateOfBirth(); 无效设定出生日期(日期); ... } 现在让

假设我有一个雇员bean,它有一个“dateOfBirth”属性:

公共类员工{
...
私人出生日期;
... 
公共日期getDateOfBirth(){…}
公共无效setDateOfBirth(日期){…}
...
}
为了使用RequestFactory,我创建了EmployeeProxy:

@ProxyFor(value=Employee.class)
公共接口员工权限扩展实体权限{
... 
日期getDateOfBirth();
无效设定出生日期(日期);
...
}
现在让我们假设我有一个静态方法,它给一个雇员返回他的年龄:

公共类Util{
公共静态整数(员工e){
return(新日期()).getYear()-e.getDateOfBirth().getYear();
}
}
如果我没有使用RequestFactory,并且在客户机中也有Employee类,那么我可以在服务器和客户机之间共享“Util”,并为客户机上的Employee实例调用getAge()。 由于我使用的是RequestFactory,我想我必须为客户端创建一个新版本的Util,如下所示:

公共类Util{
公共静态整数(雇员代理){
return(新日期()).getYear()-e.getDateOfBirth().getYear();
}
}
为客户机和服务器创建Util版本的好解决方案是什么

这是微不足道的,但实际上我有一些复杂的计算,我通常可以在客户机上进行,并节省一个往返时间。我喜欢RequestFactory的主要原因是它只在更新时传输修改过的值。
我的域类是简单的POJO,我可以毫无问题地与客户端共享。

作为最佳实践,您的Employee类应该实现EmployeeProxy接口


这也不能解决在服务器端使用Util类的问题。

作为最佳实践,Employee类应该实现EmployeeProxy接口


这也不能解决您在服务器端使用Util类的问题。

谢谢您的回答。这是一个简单的解决方案,但我必须在我的服务器上使用代理类,它看起来不太干净。此外,我的域类是自动生成的,每次生成后我都必须添加implement语句。我正在考虑根本不使用RequestFactory。谢谢您的回答。这是一个简单的解决方案,但我必须在我的服务器上使用代理类,它看起来不太干净。此外,我的域类是自动生成的,每次生成后我都必须添加implement语句。我正在考虑根本不使用RequestFactory。