Zpo-11-wyk-Slajd5: 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:
==Decorator: konsekwencje==
==Przykład==


[[Image:zpo-11-wyk-Slajd5.PNG|Decorator: konsekwencje]]
[[Image:zpo-11-wyk-Slajd5.PNG|Przykład]]




Wykorzystanie dekoratorów ma wiele zalet nad stosowaniem dziedziczenia. Przydział odpowiedzialności do obiektu jest dynamiczny i na dowolnym poziomie ziarnistości, zależnym od implementacji dekoratorów.
Jako przykład posłuży klasa KartaCzytelnicza, która przechowuje swój typ w postaci pola ''typKarty'' . Przyjmuje on trzy wartości, reprezentowane przez stałe tej klasy: JUNIOR, STANDARD oraz SENIOR. Klasa KartaCzytelnicza posiada także metody pozwalające odczytać i zmienić jej typ.
 
Należy zwrócić uwagę, że zastosowanie dekoratora zmienia referencję do obiektu, do którego odwołuje się klient. Aby uniknąć błędów, warto tworzenie i stosowanie dekoratorów powierzyć specjalizowanej metodzie (typu Factory Method).
 
Ponieważ dekoratory służą do modyfikacji zachowania, a nie przechowywania danych (w szczególności dekoratory mogą być obiektami bezstanowymi), nie należy przechowywać w nich informacji. Pozwala to utrzymać ich relatywnie niewielki rozmiar.
 
Stosowanie dekoratorów przyczynia się do łatwiejszego testowania jednostkowego systemu, ponieważ każdy dekorator wymaga jedynie testów specyficznych dla siebie, a nie dla kompletnie udekorowanego obiektu.
 
Porównaj Proxy, Strategy i Decorator.




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

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

Przykład

Przykład


Jako przykład posłuży klasa KartaCzytelnicza, która przechowuje swój typ w postaci pola typKarty . Przyjmuje on trzy wartości, reprezentowane przez stałe tej klasy: JUNIOR, STANDARD oraz SENIOR. Klasa KartaCzytelnicza posiada także metody pozwalające odczytać i zmienić jej typ.


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