假设我有一个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);
...
}
现在让我说我有一个静态方法,给一个员工它返回他的年龄:
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,我可以毫无问题地与客户共享。
答案 0 :(得分:1)
作为最佳实践 - 您的Employee类应该实现EmployeeProxy接口。
这不会解决您在服务器端使用Util类的问题。