Zpo-7-wyk-Slajd4

Z Studia Informatyczne
Wersja z dnia 07:00, 21 sie 2006 autorstwa Bwalter (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

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 >>