0

如何实现涉及异步调用的代理模式?

举个例子,如果我想得到一些东西,我会首先检查对象是否驻留在内存中,如果不是,那么我会发出 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 中的任何局部变量也必须传递给回调函数。有什么建议用异步实现代理模式吗?谢谢。

4

1 回答 1

1

那这个呢?(对不起,我猜是“回调”类)

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 时,您不想引入阻塞方法。

于 2011-08-08T02:43:33.987 回答