Zpo-7-wyk-Slajd31: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Linia 1: Linia 1:
==Przykład(1)==
==Visitor: interakcje==


[[Image:zpo-7-wyk-Slajd31.PNG|Przykład(1)]]
[[Image:zpo-7-wyk-Slajd31.PNG|Visitor: interakcje]]




W celu ukrycia klasy delegata (w tym przypadku klasy Książka) wprowadzono metodę ''autor'' ''(),'' będącą prostą delegacją do tej klasy, natomiast metodę ''książka'' ''(),'' która dotychczas udostępniała delegata – uczyniono prywatną. Dzięki temu przekształceniu informacja o istnieniu klasy Książka została hermetycznie ukryta w klasie Tom i w pewien sposób pominięta w wywołaniach mających na celu dotarcie do klasy Autor.
Obiekt ObjectStructure po kolei wywołuje na każdym ze znajdujących się w nim obiektów Element metodę ''accept'' ''(),'' przekazując jako parametr obiekt Visitor. Odwiedzany element, jeżeli zgadza się na odwiedziny, wywołuje na obiekcie Visitor metodę ''visit'' ''(),'' przekazując referencję do samego siebie, reprezentowaną przez ''this'' . W ten sposób przekazuje mu swoją zgodę na odwiedziny, a jednocześnie przekazuje referencję do siebie, co umożliwia wykonanie na nim dowolnych publicznych metod (''operationA'' ''(),'' ''operationB'' ''()).''
 
Oczywiście, można to przekształcenie kontynuować, usuwając także delegację do klasy Autor i tworząc w klasie Tom proste delegacje zwracające wyniki wykonania metod klasy Autor, jednak wprowadzałoby to zbyt wiele niejasnych delegacji.




[[zpo-7-wyk-Slajd30 | << Poprzedni slajd]] | [[zpo-7-wyk-toc|Spis treści ]] | [[zpo-7-wyk-Slajd32 | Następny slajd >>]]
[[zpo-7-wyk-Slajd30 | << Poprzedni slajd]] | [[zpo-7-wyk-toc|Spis treści ]] | [[zpo-7-wyk-Slajd32 | Następny slajd >>]]

Aktualna wersja na dzień 19:16, 4 lis 2006

Visitor: interakcje

Visitor: interakcje


Obiekt ObjectStructure po kolei wywołuje na każdym ze znajdujących się w nim obiektów Element metodę accept (), przekazując jako parametr obiekt Visitor. Odwiedzany element, jeżeli zgadza się na odwiedziny, wywołuje na obiekcie Visitor metodę visit (), przekazując referencję do samego siebie, reprezentowaną przez this . W ten sposób przekazuje mu swoją zgodę na odwiedziny, a jednocześnie przekazuje referencję do siebie, co umożliwia wykonanie na nim dowolnych publicznych metod (operationA (), operationB ()).


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