0
Завершено

Неудачный пример

Ivan Afanasov 7 lat temu Ostatnio zmodyfikowane przez anonymous 7 lat temu 1

Похоже, что это не совсем удачный пример.. 


https://refactoring.guru/home/slides/long-method/7/


double CalculateTotal() 
{
  if (BasePrice() > 1000) 
  {
    return BasePrice() * 0.95;
  }
  else 
  {
    return BasePrice() * 0.98;
  }
}
double BasePrice() 
{
  return quantity * itemPrice;
}

Здесь метод BasePrice вызывается несколько  раз и это может научить людей плохому..



Odpowiedź

Odpowiedź
Завершено

Иван, спасибо за комментарий!


Вы не поверите, но это, пожалуй, один из самых обсуждаемых примеров за все время жизни проекта. Я соглашусь, что пример сам по себе не очень убедительный. Сам бы я тоже скорей всего не трогал первоначальный код, если бы не планировал дальнейших изменений.


Однако даже с таким применением, есть не совсем очевидная польза. Вы можете нарезать получившийся метод на подметоды, не волнуясь о переносе переменных.

DOBRZE, JESTEM ZADOWOLONY.

Если с расчётом на это, тогда соглашусь) Просто не смог бы оставить так код :)

Znak zadowolenia przez Ivan Afanasov 7 lat temu
Odpowiedź
Завершено

Иван, спасибо за комментарий!


Вы не поверите, но это, пожалуй, один из самых обсуждаемых примеров за все время жизни проекта. Я соглашусь, что пример сам по себе не очень убедительный. Сам бы я тоже скорей всего не трогал первоначальный код, если бы не планировал дальнейших изменений.


Однако даже с таким применением, есть не совсем очевидная польза. Вы можете нарезать получившийся метод на подметоды, не волнуясь о переносе переменных.