yöntemine geçirmenin ilginç bir yolu Exchange Web Services Java API kodunu geçiyordum ve geliştiricilerin yöntemlerine ilişkin argümanları iletme biçiminde bir tasarım seçimi gördüm. Tekniğin faydalarını açıklamaya yardımcı olabilirsiniz -Bir parametreyi
Yöntem tarafından işlenecek olan yöntem, yönteme geçirilmeden önce bir Jenerik Sarmalayıcı sınıfı tarafından sarılır; yöntem, bir HttpWebRequest nesne üzerinde çalışır - param tanımlandığı gibidir kaynaktan snippet'idir burada
class Param<T> {
private T param;
public T getParam() { return param; }
public void setParam(T param) { this.param = param }
}
aşağıdaki şekilde dize, yeni param() yöntemiyle geçirilir.
Arayan, HttpWebRequest sınıfı tarafından sınırlandırılan bir Param örneğini oluşturur.
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();
}
Öyleyse neden HttpWebRequest nesnesi geçemezse - - Eğer yöntem imzası görebileceğiniz gibi Sonra bu örnek, yöntemin geçirilir geliştiricilerin tüm sağlayan kod tabanı üzerinde tekrar tekrar bu modeli kullanın Bunun için iyi bir neden olduğunu düşünüyorum. Ama ben sadece fayda göremiyorum ... lütfen aydınlatın.
lütfen işaret edebilir? Teşekkürler! – Miquel
link – bell0