Объяснение
Чистая функция возвращает одинаковый результат для одинакового входа и не меняет внешнее состояние. Объектная модель группирует состояние и поведение. Парадигмы можно сочетать, отделяя вычисления от эффектов.
Задача для самостоятельного решения
Как сделать расчёт стоимости тестируемым?
Показать разбор ответа
Передавать цены и ставки аргументами, возвращать результат, а чтение БД и отправку счёта вынести наружу. Тогда тест не зависит от сети и текущего времени.