Zpo-10-wyk-Slajd4: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
== | ==Change Value to Reference== | ||
[[Image:zpo-10-wyk-Slajd4.PNG| | [[Image:zpo-10-wyk-Slajd4.PNG|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. | |||
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
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.