假设我有一个 Employee bean,它有一个“dateOfBirth”属性:
public class Employee {
...
private Date dateOfBirth;
...
public Date getDateOfBirth() {...}
public void setDateOfBirth(Date date) {...}
...
}
为了使用 RequestFactory,我创建了 EmployeeProxy:
@ProxyFor (value = Employee.class)
public inteface EmployeeProxy extends EntityProxy {
...
Date getDateOfBirth();
void setDateOfBirth(Date date);
...
}
现在假设我有一个静态方法,它给一个 Employee 它返回他的年龄:
public class Util {
public static int getAge(Employee e) {
return (new Date()).getYear()-e.getDateOfBirth().getYear();
}
}
如果我没有使用 RequestFactory 并且客户端中也有 Employee 类,我可以在服务器和客户端之间共享“Util”并为客户端上的 Employee 实例调用 getAge()。由于我使用的是 RequestFactory,我想我必须为客户端创建一个新版本的 Util,如下所示:
public class Util {
public static int getAge(EmployeeProxy e) {
return (new Date()).getYear()-e.getDateOfBirth().getYear();
}
}
什么是为客户端和服务器制作 Util 版本的好解决方案?
这是微不足道的,但我实际上有一些复杂的计算,我经常可以在客户端上做这些计算并节省往返时间。我喜欢 RequestFactory 的主要原因是它只传输更新时的修改值。我的域类是简单的 POJO,我可以毫无问题地与客户共享。