1

「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 です。

4

1 に答える 1

1

ベスト プラクティスとして、Employee クラスは EmployeeProxy インターフェイスを実装する必要があります。

サーバー側でも Util クラスを使用するという問題は解決しませんか。

于 2013-08-07T03:48:22.463 に答える