この種の重複コードを削除する方法があるかどうか疑問に思っていました (プログラム全体で発生します)。
public void pickUp(Cointainer in)
{
if(playerContainer.returnSomething() == null)
{
playerContainer.setSomething(in.returnSomething());
in.setSomething(null);
}
}
public void dropContainer (Container out)
{
if(out.returnSomething() == null)
{
out.setSomething(playerContainer.returnSomething());
playerContainer.setSomething(null);
}
}
上記の例からわかるように、2 つのメソッドは本質的にまったく同じですが、どのコンテナーが null であるとテストされるか、およびオブジェクトが最終的にどのコンテナーに格納されるかが異なります。別の例は、コードの後半で発生します。ここでは、複数のオブジェクトが異なる順序でテストされます。
if (control = 1)
{
if(con1 == null)
return con1
else if (con2 == null)
return con2
else
return con3
}
else
{
if(con3 != null)
return con3
if(con2 != null)
return con2
else
return con1
}
このタイプのステートメントを 1 つの if に減らす方法はありますか?
私の質問が本当に初心者/遅れている場合は申し訳ありませんが、特にここで尋ねた最後の質問を考えると、その側面が少し欠けている可能性があります:/
とにかく、これを読んでくれてありがとう:)