变化的函数具有不同的参数,需要返回值。
示例:
public T Foo(a, b, c, func_pointer)
{
//common code
if(no errors)
{
return func_pointer(a, b, c)
}
//common code
}
public T Foo(a, b, c, **d**, func_pointer)
{
//common code
if(no errors)
{
return func_pointer(a, b, c, **d**)
}
//common code
}
有没有避免代码重复?
答案 0 :(得分:1)
处理此问题的一种方法是让具有较少参数的方法使用下一个更大数量的参数调用该方法,为缺少的args传递默认值。然后链中的最后一个方法具有实际代码,并使用默认值执行任何必要的操作。