2011-08-08 7 views
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のローカル変数もコールバック関数に渡す必要があります。非同期でプロキシパターンを実装することをお勧めしますか?ありがとう。

答えて

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を持ったときにメソッドを遮断導入する必要はありません。

+0

流れを壊すでしょう 'customer = CustomerDAO.getCustomerByName(" John ");' – janetsmith

+0

@janetsmith:逆に、あなたが入力したコード行がAPIの非同期性を破ることをお勧めしますあなたがそれを避けることができれば良い考えではありません。 – sje397

関連する問題