Перейти к основному содержимому

Посчитай и сохрани

Источник: https://habr.com/ru/post/454290/

Необходимо посчитать годовую выручку компании и сохранить ее в файл C:\results.txt.

Быстро решаем это при помощи одного метода:

void SaveGain(Company company){
//Код по подсчету выручки компании
//и сохранению результатов
}

Уже из определения задачи видно, что есть две подзадачи -"Посчитать выручку" и "Сохранить выручку". Каждая из них имеет по одному поводу для изменений — "изменене методики подсчета" и "изменение формата сохранения". Эти изменения никак не пересекаются. Так же, мы не можем односложно ответить на вопрос — "что делает метод SaveGain?". Этот метод И считает выручку И сохраняет результаты.

Потому нужно разделить этот метод на два:

Gain CalcGain(Company company){..}
void SaveGain(Gain gain){..}

Плюсы:

  • можно отдельно протестировать CalcGain
  • проще локализовать баги и вносить изменения
  • повысилась читабельность кода
  • уменьшился риск ошибки в каждом из методов из-за их упрощения