Różne implementacje interfejsu Visitor mogą zawierać (hermetyzować) różne funkcjonalności dla całych struktur danych (składających się z obiektów Element). Obiekty tego typu reprezentują algorytmy wykonujące zadane czynności na każdym obiekcie osobno.
Dla zbioru obiektów odwiedzanych metoda Accept powinna być wywoływana w odpowiedniej kolejności, gwarantując, iż każdy element zostanie odwiedzony w odpowiednim momencie. Przykładowo, wizytator odwiedzający węzły w drzewie powinien być akceptowany w kolejnych potomkach każdego z węzłów, zaś wizytator odwiedzający listę może być wołany kolejno dla poszczególnych elementów.
Przykładowe zastosowanie Wzorzec wizytatora może być zastosowany przy implementacji drzewa wyprowadzenia w parserach lub kompilatorach. Niech analizator składniowy zwróci strukturę danych, będącą drzewem wyprowadzenia danego na wejście wyrażenia matematycznego. Drzewo to symbolizuje budowę semantyczną pewnej formuły matematycznej i składa się z dwóch rodzajów węzłów: ArgumentNode - stała wartość numeryczna w wyrażeniu, np. "1.0". OperatorNode - operator binarny w wyrażeniu;