我的问题是微不足道的,但我找不到合适的解决方案。
代码(仅举例):
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 次 a++,3 次 b++)并且不要更改顺序
谢谢