Алгоритм и отрисовка разнесены в разные классы.
Создан интерфейс Algorithm, с которым будет работать отрисовка.