Zpo-11-wyk-Slajd34

Z Studia Informatyczne
Wersja z dnia 07:36, 21 sie 2006 autorstwa Bwalter (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Visitor: struktura

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.


<< Poprzedni slajd | Spis treści | Następny slajd >>