Java 如何管理更具可读性的请求代码?
我希望找到一种比我工作的公司教给我的方法更好的处理回复的方法 我被教导使用一个通用的HttpClient,它使用截击发送请求。客户机有一个静态方法,该方法将被赋予一个通用侦听器ResponseListener,当截击响应通过时,该侦听器将回调到上下文。ResponseListener将跟踪所有请求类型。这是提供给客户端的代码,以便上下文能够区分请求 有没有其他方法可以跟踪所有请求代码,而不必保存一个大的目录类型接口文件?当你收到超过100个请求时,它会变得非常难以承受。然后为客户机中的代码编写包装函数,这也会变得很混乱 HttpClientJava 如何管理更具可读性的请求代码?,java,android,http,callback,request,Java,Android,Http,Callback,Request,我希望找到一种比我工作的公司教给我的方法更好的处理回复的方法 我被教导使用一个通用的HttpClient,它使用截击发送请求。客户机有一个静态方法,该方法将被赋予一个通用侦听器ResponseListener,当截击响应通过时,该侦听器将回调到上下文。ResponseListener将跟踪所有请求类型。这是提供给客户端的代码,以便上下文能够区分请求 有没有其他方法可以跟踪所有请求代码,而不必保存一个大的目录类型接口文件?当你收到超过100个请求时,它会变得非常难以承受。然后为客户机中的代码编写包
public static void doRequestString(final ResponseListener listener, final int type, final String url, final JSONObject postData) {
// Request a string response
StringRequest request = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// Result handling
listener.onRequestDone(type, response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// Error handling
System.out.println("Something went wrong!");
error.printStackTrace();
}
});
request.setTag(context);
VolleyClient.getInstance(context).getRequestQueue().add(request);
}
上下文
public void onRequestDone(int type, String response)
{
switch(type) {
case Response.Listener.HELLO_REQUEST:
handleHello();
break;
case Response.Listener.GOODBYE_REQUEST:
handleGoodbye();
break;
}
}
老实说,没有那么多选择。你现在正在集中处理你的回答。另一个选项是剥离请求类型,因为每个请求都有一个侦听器。这里的主要缺点是,代码中会充满侦听器
我建议您尝试以适合您的用例的方式将这两种方法结合起来。可能会创建一个中间服务层,将您的功能划分为它们的一些属性,例如逻辑上——所有用户请求分组在一起,等等,为每个服务公开一个侦听器,并在那里管理请求代码。这样你可以有一点模块化。我开始考虑你建议的第二段。我认为这很有道理。我会等几天,看看是否有更好的建议出现,如果没有,我会接受你的建议。
public void onRequestDone(int type, String response)
{
switch(type) {
case Response.Listener.HELLO_REQUEST:
handleHello();
break;
case Response.Listener.GOODBYE_REQUEST:
handleGoodbye();
break;
}
}