аброр
А ещё есть какие нибудь способы,?
Ну, тут уже на фантазию разработчика.
Идея в том, чтобы каждый класс и метод, да и вообще куски кода были друг от друга не зависимы, и взаимозаменяемы.
И их взаимодействие строится через интерфейсы ну и или абстрактные классы.
Другими словами, будет лучше, если ваша функция с именем calculate будет именно вычислять, а в качестве входных данных будет принимать какой нибудь интерфейс типа LIST или что то такое. Ну, то есть, нужно изменить сигнатуру функции и все остальное что касается парсинга текста и прочих вспомогательных методов вынести в отдельные классы и методы.