如何解决如何实现依赖于Action和Func的接口?当Func返回时,动作执行不返回任何内容
我需要实现一个接口以在C#中实现策略模式。
第一步是CreateRetryInvocationContext
,第二步是执行。
第二步可以是两种类型),即Func
或Action
。重试操作可能返回一个值或可能返回void。
因此,我已经有两个具体的实现方法(即RetryOperationWithResult
和RetryOperarationWithoutResult
)。两种实现都在实现“ Execute”方法。但是问题是WithResult需要返回,而其他不需要。我该如何说服?我可以通过哪种方式安排接口,以更好地进行编排并减轻客户端的负担。在两端实现了一种平衡且可测试的实现。
这是我建议的类层次结构:
public class RetryOperationWithResult<T> : IRetryProcessor<T>
{
private Func<List<object>,T> _action;
public RetryOperationWithResult(Func<List<object>,T> action)
{
_action = action;
}
public T Execute(RetryOperationContext retryOpContext)
{
T result = default(T);
try
{
//Retry logic
//
}
catch(Exception ex)
{
}
return result;
}
}
class RetryOperationWithOutResult : IRetryProcessor<void>
{
public void Execute(RetryOperationContext retryOpContext)
{
throw new NotImplementedException();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。