0
Завершено

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

Ivan Afanasov il y a 7 ans mis à jour par anonymous il y a 7 ans 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 вызывается несколько  раз и это может научить людей плохому..



Solution

Solution
Завершено

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


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


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

JE SUIS SATISFAIT

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

Note de satisfaction par Ivan Afanasov il y a 7 ans
Solution
Завершено

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


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


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