Сделайте этот метод (accept) абстрактным, таким образом вы заставите его реализовать в каждом новом юните.
В реализации будет типа
function accept ( ArmyVisitor $visitor ) {$visitor->visitNewUnit( $this)}
и вам IDE будет подсвечивать что visitNewUnit нет в посетителе. После добавляете в интерфейс посетителя visitNewUnit, добавляете реализацию для конкретного посетителя. Всё.