Посчитай и сохрани
Источник: https://habr.com/ru/post/454290/
Необходимо посчитать годовую выручку компании и сохранить ее в файл C:\results.txt.
Быстро решаем это при помощи одного метода:
void SaveGain(Company company){
//Код по подсчету выручки компании
//и сохранению результатов
}
Уже из определения задачи видно, что есть две подзадачи -"Посчитать выручку" и "Сохранить выручку". Каждая из них имеет по одному поводу для изменений — "изменене методики подсчета" и "изменение формата сохранения". Эти изменения никак не пересекаются. Так же, мы не можем односложно ответить на вопрос — "что делает метод SaveGain?". Этот метод И считает выручку И сохраняет результаты.
Потому нужно разделить этот метод на два:
Gain CalcGain(Company company){..}
void SaveGain(Gain gain){..}
Плюсы:
- можно отдельно протестировать CalcGain
- проще локализовать баги и вносить изменения
- повысилась читабельность кода
- уменьшился риск ошибки в каждом из методов из-за их упрощения