Zpo-10-wyk-Slajd4: 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:
==Factory Method: uczestnicy==
==Change Value to Reference==


[[Image:zpo-10-wyk-Slajd4.PNG|Factory Method: uczestnicy]]
[[Image:zpo-10-wyk-Slajd4.PNG|Change Value to Reference]]




Product reprezentuje wszystkie obiekty, jakie są tworzone przez metodę ''factoryMethod'' ''().'' Często jest to grupa klas posiadająca wspólną nadklasę lub zwykły interfejs z implementującymi go klasami. Klient jest powiązany z produktami właśnie poprzez ten interfejs.
Przekształcenie to służy do zmiany obiektu traktowanego jako wartość w obiekt-referencję. Podczas pierwszego wykładu (zob. wprowadzenie do przedmiotu) przedstawiono różnicę pomiędzy tymi dwoma rodzajami obiektów: obiekty-wartości reprezentują niewielkie obiekty rzeczywiste i ich tożsamość jest wyznaczana na podstawie ich stanu (co oznacza, że nie można ich porównywać za pomocą operatora ==, który sprawdza identyczność referencji, a nie stanu obiektu!). Może istnieć wiele obiektów-wartości reprezentujących ten sam obiekt rzeczywisty, jednak właśnie ze względu na niemożność synchronizacji ich stanu nie mogą one zmieniać go po ich utworzeniu.  


Tworzeniem produktów zajmują się obiekty o interfejsie Creator. W podstawowej postaci wzorca Interfejs ten także jest jedyną informacją dotyczącą typu, jaką posiada klient. Użycie odpowiedniej klasy ConcreteCreator determinuje klasę i właściwości produktu, jaki zostanie utworzony.  
Obiekty-referencje działają w przeciwny sposób: ponieważ może istnieć tylko jeden obiekt reprezentujący obiekt rzeczywisty, dlatego nie ma konieczności porównywania ich poprzez stan; można w tym celu wykorzystać referencje i operator ==. Nie ma również zakazu modyfikacji obiektu, ponieważ problem synchronizacji nie istnieje.


W innej wersji tego wzorca Creator jest klasą, której statyczna metoda ''factoryMethod'' ''()'' dokonuje selekcji produktów na podstawie przekazanych jej parametrów.
Przekształcenie rodzaju obiektu z wartości na referencję zwykle jest efektem wzrostu złożoności obiektu i wysokiego kosztu utworzenia nowych instancji. Dlatego mechanika tego przekształcenia polega na zastąpieniu możliwości tworzenia instancji obiektu poprzez wywołanie konstruktora metodą fabryką. W kolejnym kroku jest ona wyposażona w pamięć podręczną, w której przechowuje utworzone dotychczas obiekty. Dzięki temu można wykorzystać je ponownie do obsługi kolejnych żądań utworzenia obiektów.




[[zpo-10-wyk-Slajd3 | << Poprzedni slajd]] | [[zpo-10-wyk-toc|Spis treści ]] | [[zpo-10-wyk-Slajd5 | Następny slajd >>]]
[[zpo-10-wyk-Slajd3 | << Poprzedni slajd]] | [[zpo-10-wyk-toc|Spis treści ]] | [[zpo-10-wyk-Slajd5 | Następny slajd >>]]

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

Change Value to Reference

Change Value to Reference


Przekształcenie to służy do zmiany obiektu traktowanego jako wartość w obiekt-referencję. Podczas pierwszego wykładu (zob. wprowadzenie do przedmiotu) przedstawiono różnicę pomiędzy tymi dwoma rodzajami obiektów: obiekty-wartości reprezentują niewielkie obiekty rzeczywiste i ich tożsamość jest wyznaczana na podstawie ich stanu (co oznacza, że nie można ich porównywać za pomocą operatora ==, który sprawdza identyczność referencji, a nie stanu obiektu!). Może istnieć wiele obiektów-wartości reprezentujących ten sam obiekt rzeczywisty, jednak właśnie ze względu na niemożność synchronizacji ich stanu nie mogą one zmieniać go po ich utworzeniu.

Obiekty-referencje działają w przeciwny sposób: ponieważ może istnieć tylko jeden obiekt reprezentujący obiekt rzeczywisty, dlatego nie ma konieczności porównywania ich poprzez stan; można w tym celu wykorzystać referencje i operator ==. Nie ma również zakazu modyfikacji obiektu, ponieważ problem synchronizacji nie istnieje.

Przekształcenie rodzaju obiektu z wartości na referencję zwykle jest efektem wzrostu złożoności obiektu i wysokiego kosztu utworzenia nowych instancji. Dlatego mechanika tego przekształcenia polega na zastąpieniu możliwości tworzenia instancji obiektu poprzez wywołanie konstruktora metodą fabryką. W kolejnym kroku jest ona wyposażona w pamięć podręczną, w której przechowuje utworzone dotychczas obiekty. Dzięki temu można wykorzystać je ponownie do obsługi kolejnych żądań utworzenia obiektów.


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