Java 如何实现包含异步调用的代理模式?
如何实现包含异步调用的代理模式 举个例子,如果我想得到一些东西,我将首先检查对象是否驻留在内存中,如果不是,那么我将发出http请求来检索它(这是异步调用) 在CustomerDAO.getCustomerByName(“John”) 但是,由于它是异步的,因此会中断程序的流程。此外,getCustomers中的任何局部变量也必须传递给回调函数。有没有关于用Async实现代理模式的建议?谢谢。这个怎么样?(对不起,我在猜测“回调”类)Java 如何实现包含异步调用的代理模式?,java,design-patterns,asynchronous,proxy-pattern,Java,Design Patterns,Asynchronous,Proxy Pattern,如何实现包含异步调用的代理模式 举个例子,如果我想得到一些东西,我将首先检查对象是否驻留在内存中,如果不是,那么我将发出http请求来检索它(这是异步调用) 在CustomerDAO.getCustomerByName(“John”) 但是,由于它是异步的,因此会中断程序的流程。此外,getCustomers中的任何局部变量也必须传递给回调函数。有没有关于用Async实现代理模式的建议?谢谢。这个怎么样?(对不起,我在猜测“回调”类) 一般来说,当您已经有了异步API时,您不想引入阻塞方法。它将
一般来说,当您已经有了异步API时,您不想引入阻塞方法。它将中断流程
customer=CustomerDAO.getCustomerByName(“John”)
@janetsmith:相反,我建议您在那里键入的代码行将破坏API的异步特性,如果您可以避免,这不是一个好主意。
Customer customer;
customer = 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);
}
}
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);
}
}