Zpo-7-wyk-Slajd33

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Visitor: konsekwencje

Visitor: konsekwencje


Najważniejszą zaletą tego wzorca jest możliwość wykonania przy odwiedzinach każdego elementu w strukturze pewnego kodu zależnego od typu tego elementu. Ta cecha decyduje o popularności i szerokich możliwościach stosowania tego wzorca.

Dodawanie nowych implementacji interfejsu Visitor jest łatwe, ponieważ wymaga jedynie stworzenia nowej klasy i zaimplementowania jej metod. Z drugiej strony, dodanie nowego elementu do odwiedzenia jest trudne, ponieważ wymaga dodania nowej metody do wszystkich obiektów Visitor.

Wzorzec ten w szczególności nadaje się do akumulacji stanu podczas przejścia przez strukturę obiektów (akumulacja odbywa się wówczas wewnątrz obiektu Visitor).

Należy jednak zwrócić uwagę, że wzajemne wywoływanie metod visit () i accept () w obiektach Visitor i Element wymaga, aby metody te były dla siebie wzajemnie dostępne. W C++ można wykorzystać w tym celu klasy zaprzyjaźnione, natomiast w Javie konieczne jest upublicznienie metod, co w pewnym stopniu narusza ich hermetyzację.


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