在 OOP 和所有编程中,我知道一个明确的规则是一个方法应该只执行一个特定的任务,如果需要执行另一个任务,那么应该创建另一个方法。我的问题是这在我的情况下似乎毫无意义,因为它只是使用更多代码而不是 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(一种处理增加和减少的大方法)
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 行额外的行,但节省了大量正在复制的代码。
我只是希望您对这是否被视为良好的编程实践提出意见。
感谢您的时间。