我的问题是微不足道的,但我找不到合适的解决方案。如何提取抽象?
代码(只是举例):
public class ToRefact
{
public int Func1(int i)
{
int a = i;
a++;
a++;
a++;
int b = FuncX2(a); //b = a * 2;
b++;
b++;
b++;
return a + b;
}
public int Func2(int i)
{
int a = i;
a++;
a++;
a++;
int b = FuncX3(a); // b = a * 3;
b++;
b++;
b++;
return a + b;
}
private int FuncX2(int b)
{
return b * 2;
}
private int FuncX3(int b)
{
return b * 3;
}
}
我们可以看到,FUNC1和FUNC2具有相同的身体,除了代码中的:差异是FuncX2和FuncX3。但是,我不能做基础抽象类,因为这个代码在中间! 我如何做共同的抽象?请不要改变操作(3次++,3次数b ++),但不改变序列
感谢
是的,依赖注入!谢谢 – zzfima