私は、本質的に非同期のRIAサービスでSilverlightを使用しています。しかし、この技術の選択には問題はありません。非同期APIコールバック設計の質問
たとえば、Webサービスのために非同期呼び出しをラップし、私自身の単純化された緩やかに結合されたAPI(例:DomainClient上のリポジトリ)を提供したいと思います。
これまでのところ、私は私のインタフェースで非同期メソッドの次のスタイルがあります。
public void DoAsyncWork(Action<AsyncWorkResult<someResultType>> callback);
を、私は以下のオーバーロードを追加することを検討しています:
public void DoAsyncWork(Action<someResultType> onSuccess,
Action<Exception> onException);
と
public void DoAsyncWork(Action<someResultType> onSuccess,
Action<Exception> onException,
Action finally);
onSuccess
アクションは、非同期コールが成功した場合にのみ実行されますyの場合、呼び出しによってエラーが報告された場合はonException
が実行され、いずれの場合も末尾にfinally
が実行されます。
私の質問は、「一般的なもの」のような最初のスタイルを実装し、他の2つを実装する必要があります(私が知る限り)。彼らは開発とメンテナンスに投資する価値がありますか?
この質問は、要件とは関係なくデザイン面に関するものです。事前に
感謝:)
:
のように使用されています@コーリー:ここでは、「Silverlight」タグをここに追加しませんでした。なぜなら、私はAPI設計の面だけに焦点を当てているからです。とにかくありがとう:) – AbdouMoumen
最高のAPIデザインは、使用している言語/フレームワークによって大きく違って見える場合があります。重要な情報だとは思いますが、そうでないかもしれません。 –
@Cory:OK、フェア十分:) あなたの答えはどこに行きましたか?私はあまり言及したパターンを使用しませんでした、そして、私はそれについてもっと学ぶつもりでした。あなたの答えがなくなったことがわかりました: – AbdouMoumen