私は Silverlight/flex を使い始めて、すぐに非同期サービス呼び出しにぶつかりました。私は、データ アクセスの問題をサーバー フェッチ メカニズムまたは別のメカニズムを使用してオブジェクト指向の方法で解決することに慣れています。
次の簡単なコード例があります。
public double ComputeOrderTotal(Order order)
{
double total = 0;
// OrderLines are lazy loaded
foreach (Orderline line in order.Orderlines)
{
// Article,customer are lazy loaded
total = total + line.Article.Price - order.Customer.discount;
}
return total;
}
私の理解が正しければ、このコードは Flex/Silverlight では不可能です。遅延読み込みにより、コールバックを使用する必要があります。IMO 上記の単純な例は、大きな混乱になります。
上記を実装するための構造化された方法を教えてもらえますか?
編集:
- 問題は Flex/Silverlight でも同じです。疑似コードで問題ありません。
- 実際には ORM 関連ではありませんが、ほとんどの orms は遅延読み込みを使用するため、そのタグを削除します
- 問題はモデルの遅延読み込みです
- 上記の例は、すべてのデータがメモリ内にある場合に非常に実行可能ですが、一部はサーバーから取得する必要があると想定しています
- データがすでにロードされていて、非同期フェッチが不要な場合があるため、クロージャーは役に立たない