Tôi đã trải qua mã số Exchange Web Services Java API và thấy một lựa chọn thiết kế theo cách các nhà phát triển chuyển đối số cho phương thức của họ. Bạn có thể giúp giải thích các lợi ích của kỹ thuật này -Một cách tò mò để chuyển một tham số đến một phương thức
Loại được xử lý bằng phương pháp được bao bọc bởi lớp Generic Wrapper trước khi được chuyển vào phương pháp, ví dụ: nếu phương pháp này hoạt động trên Chuỗi, thông số mới() được chuyển vào phương thức mà Param được định nghĩa như sau
class Param<T> {
private T param;
public T getParam() { return param; }
public void setParam(T param) { this.param = param }
}
Đây là một đoạn mã từ nguồn - Phương thức hoạt động trên đối tượng HttpWebRequest.
Trình gọi tạo ra một cá thể của tham số, tức là bị ràng buộc bởi lớp HttpWebRequest. Sau đó, trường hợp đó được truyền vào phương pháp, như bạn có thể nhìn thấy trong chữ ký phương pháp -
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();
}
Sau đó, tại sao không chỉ vượt qua các đối tượng HttpWebRequest - Các nhà phát triển sử dụng mô hình này lặp đi lặp lại trên tất cả các cơ sở mã mà làm tôi nghĩ rằng có một số lý do chính đáng cho nó. Nhưng tôi không thể thấy được lợi ích ... xin hãy khai sáng.
Bạn có thể trỏ đến một trường hợp như vậy trong github, xin vui lòng? cám ơn! Liên kết – Miquel
nằm trong câu hỏi – bell0