私の質問は些細なことですが、適切な解決策が見つかりません。
コード (例):
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 です。しかし、このコードが途中にあるため、基本抽象クラスを実行できません。共通の抽象化を行うにはどうすればよいですか? 操作を変更しないでください (a++ を 3 回、b++ を 3 回)、順序を変更しないでください。
ありがとう