Zpo-11-wyk-Slajd32: 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:
==Iterator: konsekwencje==
==Push Down Method==


[[Image:zpo-11-wyk-Slajd32.PNG|Iterator: konsekwencje]]
[[Image:zpo-11-wyk-Slajd32.PNG|Push Down Method]]




Iterator pozwala na oddzielenie kolekcji, czyli klasy związanej z przechowywaniem obiektów, od mechanizmu dostępu do tych obiektów. Dzięki temu klient odwołuje się do obiektów w sposób abstrakcyjny, niezależny od konkretnej implementacji kolekcji.
To przekształcenie jest komplementarne w stosunku do przeniesienia metody do nadklasy. Jeżeli metoda zdefiniowana w nadklasie ma znaczenie jedynie dla wybranych podklas, wówczas bardziej uzasadnione może okazać się przeniesienie jej do tych podklas i usunięcie z nadklasy.


Konstrukcja iteratora pozwala na jednoczesne współistnienie wielu niezależnych iteratorów, ponieważ każdy przechowuje wewnętrznie wskaźnik do aktualnie wskazywanego obiektu w kolekcji. Niektóre kolekcje mogą definiować kilka różnych iteratorów, o zróżnicowanej funkcjonalności (w przypadku np. listy)
Przekształcenie rozpoczyna się od zadeklarowania metody we wszystkich podklasach poprzez skopiowania do nich ciała z nadklasy. Następnie metoda z nadklasy jest usuwana, jednak z uwagi na uprzednie przeniesienie jej do wszystkich podklas, zachowanie programu nie zmienia się. Ostatnim krokiem jest usunięcie metody z tych podklas, które jej nie potrzebują.




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

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

Push Down Method

Push Down Method


To przekształcenie jest komplementarne w stosunku do przeniesienia metody do nadklasy. Jeżeli metoda zdefiniowana w nadklasie ma znaczenie jedynie dla wybranych podklas, wówczas bardziej uzasadnione może okazać się przeniesienie jej do tych podklas i usunięcie z nadklasy.

Przekształcenie rozpoczyna się od zadeklarowania metody we wszystkich podklasach poprzez skopiowania do nich ciała z nadklasy. Następnie metoda z nadklasy jest usuwana, jednak z uwagi na uprzednie przeniesienie jej do wszystkich podklas, zachowanie programu nie zmienia się. Ostatnim krokiem jest usunięcie metody z tych podklas, które jej nie potrzebują.


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