如何实现涉及异步调用的代理模式?
仅举例来说,如果我想得到一些东西,我将首先检查对象是否驻留在内存中,如果不是,那么我将发出http请求以检索它(这是异步调用)。
Customer customer;
customer = CustomerDAO.getCustomerByName("John");
并且在CustomerDAO.getCustomerByName(“ John”)内;
Customer getCustomerByName(String name)
{
int age = 40;
if (map.contains(name))
{
Customer customer = map.get(name);
customer.age = age;
return customer;
}
else
{
makeRequestAsnyc(name, callback);
}
}
但是,由于它是异步的,因此会中断程序的流程。同样,getCustomers中的任何局部变量也必须传递给回调函数。有什么建议用Async实现代理模式吗?谢谢。
最佳答案
那这个呢? (抱歉,我正在猜测“回调”类)
Customer getCustomerByName(String name, Callback callback)
{
int age = 40;
if (map.contains(name))
{
Customer customer = map.get(name);
customer.age = age;
callback.call(customer);
}
else
{
makeRequestAsnyc(name, callback);
}
}
通常,当您已经拥有一个异步API时,您就不想引入阻塞方法。