Как реализовать шаблон прокси с использованием асинхронного вызова? - PullRequest
0 голосов
/ 08 августа 2011

Как реализовать шаблон прокси с асинхронным вызовом?

Например, если я хочу что-то получить, я сначала проверю, находится ли объект в памяти, если нет, то я сделаю 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 также должны быть переданы в функцию обратного вызова.Любое предложение о реализации шаблона Proxy с Async?Спасибо.

1 Ответ

1 голос
/ 08 августа 2011

А как насчет этого?(Извините, я догадываюсь о классе '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);
    }
}

Как правило, вы не хотите вводить методы блокировки, когда у вас уже есть асинхронный API.

...