Zpo-11-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:
==Iterator: uczestnicy==
==Przykład 2(1)==


[[Image:zpo-11-wyk-Slajd31.PNG|Iterator: uczestnicy]]
[[Image:zpo-11-wyk-Slajd31.PNG|Przykład 2(1)]]




We wzorcu uczestniczą dwie hierarchie obiektów: związanych z kolekcjami (Aggregate i jej klasy potomne) i związanych z iteracją (Iterator i jego podklasy). Obie hierarchie są powiązane ze sobą wyłącznie poprzez interfejsy.
Rozwiązaniem takiego problemu jest przeniesienie fragmentów kodu nie do konstruktora, ale do osobnej metody ''inicjuj'' ''(),'' która zostanie wywołana w konstruktorze. Metoda ta ta może zdefiniować szkielet (zob. wzorzec Template Method), którego elementy – metody ''czyDuze'' ''()'' i ''wyznaczRegal'' ''()'' – mogą zostać pokryte w podklasach. Wywołanie metody ''inicjuj'' ''()'' w klasie Książka powoduje zatem wywołanie właściwych metod ''czyDuze'' ''()'' i ''wyznaczRegal'' ''().''
 
Warto zwrócić uwagę, że struktura wzorca i role pełnione przez poszczególne klasy są szczególnym przypadkiem struktury i ról zdefiniowanych we wzoru Factory Method. Tam również klient odwołuje się do abstrakcyjnej metody klasy-fabryki w celu otrzymania abstrakcyjnego produktu, a faktycznie wywołuje metody w implementacji klasy-fabryki i otrzymuje konkretny produkt zależny od użytej fabryki.  




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

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

Przykład 2(1)

Przykład 2(1)


Rozwiązaniem takiego problemu jest przeniesienie fragmentów kodu nie do konstruktora, ale do osobnej metody inicjuj (), która zostanie wywołana w konstruktorze. Metoda ta ta może zdefiniować szkielet (zob. wzorzec Template Method), którego elementy – metody czyDuze () i wyznaczRegal () – mogą zostać pokryte w podklasach. Wywołanie metody inicjuj () w klasie Książka powoduje zatem wywołanie właściwych metod czyDuze () i wyznaczRegal ().


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