Tworzenie kopii obiektów. Wzorzec prototypu
Kopiowanie obiektów, czyli tworzenie duplikatów, przechowujących te same informacje bez niszczenia oryginału, jest jedną z głównych operacji, które wykorzystujemy w programowaniu. Artykuł opisuje tę czynność, analizując techniki wspierające proces tworzenia kopii w języku C++. Autor: Robert NowakŹródło: Software Developer’s Journal 03/2010 (183) sdjournal.org Kopiowanie obiektów jest operacją wykonywaną najczęściej: przekazując argumenty poprzez wartość, zwracając wyniki obliczeń, przechowując detale w kontenerach i w wielu innych sytuacjach są kreowane kopie. Jeżeli już obiekt jest dostępny pośrednio, na przykład poprzez wskaźnik, to można stworzyć kopię wskaźnika (albo innego uchwytu) lub całego obiektu. W związku z tym możemy wyróżnić trzy typy kopiowania: kopiowanie płytkie, gdy kopiujemy uchwyty (wskaźniki), kopiowanie głębokie, gdy projektujemy kopię obiektu, oraz kopiowanie leniwe, które łączy kopiowanie płytkie i głębokie. Do demonstracji tych technik będziemy używali klasy Foo pokazanej na Listingu 1. Kopią płytką nazywa się kopiowanie wyłącznie obiektów pośredniczących, wskaźników, referencji, uchwytów itd. Kopia taka jest tworzona śpiesznie, ponieważ wskaźnik albo inny obiekt pośredniczący jest w większości przypadków małym obiektem. Po opracowaniu płytkiej kopii ten sam obiekt jest dostępny z wielu miejsc, obiekt wskazywany nie jest kopiowany, zmiana jego stanu będzie widoczna we wszystkich kopiach. Głęboka kopia znaczy rzeczywiste kopiowanie obiektów wskazywanych. Powstawanie takiej kopii zajmuje więcej czasu i zasobów, niemniej jednak obiekt i kopia są od siebie niezależne. Zmiany obiektu nie posiadają wpływu na kopię. Kopiowanie opóźnioneKopiowanie opóźnione lub leniwe używa obie strategie kopiowania omówione wcześniej. Na początku realizujemy kopię płytką, która jest przeprowadzana pr |
|
Adres www: http://254.7.64.3 |
|
Tags:
cms ,
programowanie ,
serwer ,
java ,
szablony ,
szablon php-Fusion ,
szablon ,
aplikacje serwerowe ,
szablony stron ,
|
|
