Zpo-11-wyk-Slajd34
Visitor: struktura
Obiekty wchodzące w skład struktury, które obiekt Visitor ma odwiedzić, implementują interfejs Element. Interfejs ten definiuje tylko jedną metodę – accept (), przyjmującą jako jedyny parametr obiekt typu Visitor. Co więcej, metodą ta w każdym przypadku ma identyczną postać: w obiekcie Visitor wywoływana jest metoda visit () z parametrem this , oznaczająca referencję do własnego obiektu. W ten sposób następuje tzw. odwrócenie sterowania: zamieniają się nadawca i odbiorca komunikatu
Z drugiej strony we wzorcu uczestniczą obiekty implementujące interfejs Visitor, który definiuje grupę metod visit (), przyjmujących jako parametr obiekty typów, które należy odwiedzić. Każda z tych metod jest zatem przygotowana do odwiedzenia obiektu jednego typu w sposób całkowicie zależny od niego i do niego dostosowany.
Jednak konieczne jest automatyczne określenie, która z metod visit () zostanie wykonana. Do tego służy właśnie owo odwrócenie sterowania: przekazywany parametr this jest zawsze typu klasy, w której się znajduje, dzięki czemu metoda zostanie dopasowana automatycznie do typu parametru.