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