0
我正在使用Silverlight和RIA Services,它們本質上是異步的。但問題並不在於這項技術的選擇。我想打包一個異步調用,例如對於Web服務,並提供我自己的簡化和鬆散耦合的API(例如:通過DomainClient的存儲庫)。異步API回調設計問題
到目前爲止,我的異步方法下面的風格在我的接口:
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
。
我的問題是,在實施了第一種類型的「一般」和最常用的(據我所知)的情況下,我是否應該實施其他兩種?他們在開發和維護方面值得投入嗎?
這個問題是關於設計方面,獨立於任何要求。
感謝提前:)
@Cory:我沒有故意添加「Silverlight」標籤,因爲正如我所說的,我只關注API設計方面。無論如何感謝:) – AbdouMoumen
根據您使用的語言/框架,最好的API設計可能看起來截然不同。我會說這是重要的信息,但也許不是。 –
@Cory:好,夠公平:) 但是你的答案在哪裏呢?我沒有使用你提到的那種模式,我會更多地瞭解它。然後我發現你的答案已經消失:s – AbdouMoumen