1

假设我有一个 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,我可以毫无问题地与客户共享。

4

1 回答 1

1

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

那也不能解决您在服务器端使用 Util 类的问题吗?

于 2013-08-07T03:48:22.463 回答