Zpo-11-wyk-Slajd35: 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:
==Visitor: interakcje==
==Przykład(1)==


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




Obiekt ObjectStructure po kolei wywołuje na każdym ze znajdującym się w niej 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 siebie (referencję ''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'' ''()).''
Po wykonaniu przekształcenia powstał nowy interfejs – Wydawnictwo, który deklaruje identyczne dwie metody co klasa Książka. Zadeklarowanie tego interfejsu w klasie Książka nie wymaga zatem żadnych innych zmian w kodzie. Dzięki tej zmianie możliwe jest rozszerzenie typu argumentu metody ''wyswietlDane'' ''()'' do interfejsu Wydawnictwo, co umożliwia użycie w przyszłości innych implementacji tego interfejsu (np. czasopisma, książki wielotomowej etc.).
 
W efekcie w miejsce klasy, która definiowała jednocześnie typ i implementację powstały dwa odrębne elementy: interfejs określający zakres odpowiedzialności oraz klasa będąca jego realizacją.




[[zpo-11-wyk-Slajd34 | << Poprzedni slajd]] | [[zpo-11-wyk-toc|Spis treści ]] | [[zpo-11-wyk-Slajd36 | Następny slajd >>]]
[[zpo-11-wyk-Slajd34 | << Poprzedni slajd]] | [[zpo-11-wyk-toc|Spis treści ]] | [[zpo-11-wyk-Slajd36 | Następny slajd >>]]

Aktualna wersja na dzień 17:37, 4 lis 2006

Przykład(1)

Przykład(1)


Po wykonaniu przekształcenia powstał nowy interfejs – Wydawnictwo, który deklaruje identyczne dwie metody co klasa Książka. Zadeklarowanie tego interfejsu w klasie Książka nie wymaga zatem żadnych innych zmian w kodzie. Dzięki tej zmianie możliwe jest rozszerzenie typu argumentu metody wyswietlDane () do interfejsu Wydawnictwo, co umożliwia użycie w przyszłości innych implementacji tego interfejsu (np. czasopisma, książki wielotomowej etc.).

W efekcie w miejsce klasy, która definiowała jednocześnie typ i implementację powstały dwa odrębne elementy: interfejs określający zakres odpowiedzialności oraz klasa będąca jego realizacją.


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