Zpo-6-wyk-Slajd33: 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:
==Encapsulate Downcast==
==Prototype: struktura==


[[Image:zpo-6-wyk-Slajd33.PNG|Encapsulate Downcast]]
[[Image:zpo-6-wyk-Slajd33.PNG|Prototype: struktura]]




Przekształcenie to jest prostym mechanizmem hermetyzacji, który pozwala ograniczyć problemy związane z rzutowaniem klas. Występują one jednak tylko w niektórych językach o statycznym systemie typów, dlatego znaczenie tej refaktoryzacji jest ograniczone.
Obiekt poddający się klonowaniu, Prototype, posiada metodę ''clone'' ''().'' Metoda ta jest implementowana we wszystkich jego obiektach potomnych w ten sposób, że tworzy ona dokładną kopię bieżącego obiektu. Jedyna różnica pomiędzy oryginałem i klonem polega na odrębnej tożsamości obiektu (w większości języków tożsamość jest rozstrzygana na podstawie referencji do tego obiektu). Klient, żądając utworzenia kopii obiektu Prototype, wywołuje w istniejącej instancji tego obiektu metodę ''clone'' ''(),'' która zwraca jego klon.
 
Problem rozwiązywany przez nie dotyczy konieczności rzutowania wyniku metody przez klienta, i zwykle jest związany z operacjami na kolekcjach. Rozwiązaniem jest przesunięcie rzutowania do wewnątrz metody.




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

Aktualna wersja na dzień 11:10, 17 paź 2006

Prototype: struktura

Prototype: struktura


Obiekt poddający się klonowaniu, Prototype, posiada metodę clone (). Metoda ta jest implementowana we wszystkich jego obiektach potomnych w ten sposób, że tworzy ona dokładną kopię bieżącego obiektu. Jedyna różnica pomiędzy oryginałem i klonem polega na odrębnej tożsamości obiektu (w większości języków tożsamość jest rozstrzygana na podstawie referencji do tego obiektu). Klient, żądając utworzenia kopii obiektu Prototype, wywołuje w istniejącej instancji tego obiektu metodę clone (), która zwraca jego klon.


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