2009-09-26

GWT-RPCでのAsyncCallbackの書き方考察

GWT-RPCでのクライアント側の処理プログラムの書き方は、正直気持ち悪い。

AsyncCallback callback = new AsyncCallback(){
 @Override
public void onFailure(Throwable caught) {
 results.setText("Server Response Error");
serverResponseLabel.setHTML(caught.getMessage());
}
@Override
public void onSuccess(String result) {
  results.setText(result);
}
};

RS.Method("hello", callback);

サンプルで挙がっているような書き方は、上の書いたように、関数に対応したcallback 変数を定義しているわけだが、これだと関数が増えた時にめんどうだ。どれがどの関数に対応しているのかがわからなくなってしまう。そこで、以下のような書き方にしたほうがいい。

RS.Method(nameField.getText(), new AsyncCallback() {
 public void onFailure(Throwable caught) {
 results.setText("Server Response Error");
 serverResponseLabel.setHTML(caught.getMessage());
}
@Override
public void onSuccess(String result) {
 results.setText(result);
}
});


ま、これは好みの問題かもしれないけどね。

0 件のコメント:

コメントを投稿