OOPおよび一般的なすべてのプログラミングでは、メソッドは1つの特定のタスクのみを実行する必要があり、別のタスクを実行する必要がある場合は別のメソッドを作成する必要があることは明らかです。私の問題は、1つの大きなメソッドではなく、より多くのコードを使用しているため、これは私の状況では無意味に見えることです。
これが私のコードを構造化する2つの方法です(1つは標準の規則に従うもの、もう1つはコードを保存するだけです)
シナリオ1(2つの方法)
統計メソッドの増加
public void increaseStat(short value, string stat)
{
switch (stat)
{
case "stamina":
if (staminaCheck.Checked == true)
{
stamina += value;
staminaText.Text = Convert.ToString(stamina);
}
staminaCheck.Checked = false;
break;
//There are 5 other similar cases for different stats but to save time I removed them
}
統計法を減らす
public void decreaseStat(short value, string stat)
{
switch (stat)
{
case "stamina":
if (staminaCheck.Checked == true)
{
stamina -= value;
staminaText.Text = Convert.ToString(stamina);
}
staminaCheck.Checked = false;
break;
//There are 5 other similar cases for different stats but to save time I removed them
}
ご覧のとおり、コードは、-ではなく+である1つの操作を除いてまったく同じです。したがって、慣例のためにすべてのコードを別のメソッドにコピーする代わりに、これを行うことにしました
シナリオ2(増減に取り組む1つの大きな方法)
public void alterStat(short value, string stat, bool operator)
{
switch (stat)
{
case "stamina":
if (staminaCheck.Checked == true)
{
if (Operator == true) stamina -= value;
else stamina += value
staminaText.Text = Convert.ToString(stamina);
}
staminaCheck.Checked = false;
break;
//There are 5 other similar cases but to save time I removed them
}
このように、単純なifステートメントを追加することで、それぞれの場合に2行を追加しますが、コピーされるコードの負荷を節約します。
これが優れたプログラミング手法と見なされるかどうかについて意見をお聞かせください。
お時間をいただきありがとうございます。