私はExchange Web Services Java APIコードを使い、開発者がメソッドに引数を渡す方法を設計しました。このテクニックの利点を説明するのを手伝ってください。メソッドにパラメータを渡す方法が不思議です
メソッドに処理される型は、メソッドに渡される前にGeneric Wrapperクラスでラップされます。この方法は、HttpWebRequestのオブジェクト上で動作 - [パラメータが定義されるソースからの抜粋である。ここで
class Param<T> {
private T param;
public T getParam() { return param; }
public void setParam(T param) { this.param = param }
}
を次のように文字列は、新しいparamが()メソッドに渡されます。
呼び出し元は、Paramのインスタンスを作成します。つまり、HttpWebRequestクラスでバインドされています。
protected HttpWebRequest emit(OutParam<HttpWebRequest> request)
throws Exception {
request.setParam(this.getService().prepareHttpWebRequest());
OutputStream urlOutStream = request.getParam().getOutputStream();
EwsServiceXmlWriter writer = new EwsServiceXmlWriter(this.service,urlOutStream);
this.writeToXml(writer);
urlOutStream.flush();
urlOutStream.close();
writer.dispose();
request.getParam().executeRequest();
if(request.getParam().getResponseCode() >= 400)
{
throw new Exception("The remote server returned an error:("+request.getParam().getResponseCode()+")"+request.getParam().getResponseText());
}
return request.getParam();
}
なぜただのHttpWebRequestオブジェクトを渡さない - - 開発者は、すべての可能なコードベースの上に繰り返し、このパターンを使用しますが、メソッドのシグネチャで見ることができるように、そのインスタンスは、メソッドに渡されます私はそれには何らかの正当な理由があると思う。しかし、私は利益を見ることができません...啓発してください。
ください指しますか?どうも! – Miquel
リンクは質問にあります – bell0