「dateOfBirth」プロパティを持つ Employee Bean があるとします。
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 です。