Generalnie visitor rozumiem jak specyficzny iterator tylko że kolejnośc działań jest specyficznie okreslona. W sumie zdefiniowana przez programiste
Najłatwiej zrozumieć to chyba przy teorii kompilatorów. Kojarzę coś tam z uczelni. Jest coś takiego jak drzewo składniowe które określa kolenosc działan. Jak już masz takie drzewo gdzie już wiesz że pierw robisz działania w nawiasie potem mnożenie potem dodawanie to visitor elegancko może przejść po nim i zrobić wszystkie obliczenia w tak określonej kolejności. Możesz też sterować czy chcesz wykonać obliczenie od l czy od r
Czyli to taka irteracja przez różne typy w określonej kolejności gdzie wyniki z poprzednich moga miec wpływ na obliczenia następnych. Wydaje się mało przydatny no ale to chyba zależy od projektu.