Как визуализировать алгоритм без изменения кода этого алгоритма?

Я хочу визуализировать два разных алгоритма, которые определяют, есть ли перекрытие в наборе кругов на плоскости в Java:

  • Алгоритм O(n²), который проверяет каждую комбинацию кругов
  • алгоритм O(nlogn) с использованием строки развертки

Есть ли способ позволить объекту класса визуализации «слушать» объект класса алгоритма таким образом, чтобы он мог, например, видеть, когда алгоритм выполняет проверку перекрытия между парой кругов и знает, когда обновить визуализацию?

Другой пример: Я могу сохранить список активных кругов (тех, которые пересекают линию развертки) в качестве переменной алгоритма линии развертки и позволить другому классу (классу визуализации) получить эту переменную. Но как этот класс узнает об обновлении списка и необходимости обновить визуализацию?

Это как раз та стратегия, о которой я думал. Возможно, есть способы получше...

6
задан Oliver Charlesworth 5 April 2012 в 22:17
поделиться