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


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




Interfejs AbstractFactory definiuje osobne metody typu ''factoryMethod'' ''()'' dla każdego typu produktu, jaki ma tworzyć. Produkty nie są w żaden sposób ze sobą związane. Dopiero obiekt ConcreteFactory, będący implementacją klasy AbstractFactory, określa, jakie konkretne klasy zostaną użyte do konstrukcji produktów.  
Potrzeba wykonania odwrotnego przekształcenia dotyczy zwykle sytuacji, w której obiekt dostępny przez referencję traci stopniowo swoją funkcjonalność, jego zakres odpowiedzialności staje się coraz mniejszy, a proces tworzenia obiektu nie wymaga istotnych nakładów czasowych. Wówczas warto zmienić taki obiekt w obiekt-wartość.


Klasy produktów również są widziane jako interfejsy AbstractProduct. Dzięki temu zmiana rodziny produktów jest przezroczysta z punktu widzenia klienta.
Mechanika przekształcenia składa się z następujących kroków: Najpierw należy sprawdzić, czy obiekt ten po przekszałceniu faktycznie może być niezmienny. Jeżeli ten warunek nie jest spełniony, wówczas przekształcenie nie może być poprawnie zakończone. Jeżeli jednak tak jest, wtedy należy przygotować obiekt do porównywania jego stanu z innymi obiektami, tzn. zaimplementować jego metody ''equals'' ''(),'' służącą do bezpośrednich porównań, oraz ''hashCode'' ''(),'' często wykorzystywaną w tym celu metodę pomocniczą.
 
Po wykonaniu tych dwóch kroków obiekt w zasadzie może być traktowany jako obiekt-wartość. Opcjonalnie można zakończyć przekształcenie upubliczniając konstruktor, aby było możliwe bezpośrednie tworzenie instancji tej klasy, bez pośrednictwa metody-fabryki.




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

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

Change Reference to Value

Change Reference to Value


Potrzeba wykonania odwrotnego przekształcenia dotyczy zwykle sytuacji, w której obiekt dostępny przez referencję traci stopniowo swoją funkcjonalność, jego zakres odpowiedzialności staje się coraz mniejszy, a proces tworzenia obiektu nie wymaga istotnych nakładów czasowych. Wówczas warto zmienić taki obiekt w obiekt-wartość.

Mechanika przekształcenia składa się z następujących kroków: Najpierw należy sprawdzić, czy obiekt ten po przekszałceniu faktycznie może być niezmienny. Jeżeli ten warunek nie jest spełniony, wówczas przekształcenie nie może być poprawnie zakończone. Jeżeli jednak tak jest, wtedy należy przygotować obiekt do porównywania jego stanu z innymi obiektami, tzn. zaimplementować jego metody equals (), służącą do bezpośrednich porównań, oraz hashCode (), często wykorzystywaną w tym celu metodę pomocniczą.

Po wykonaniu tych dwóch kroków obiekt w zasadzie może być traktowany jako obiekt-wartość. Opcjonalnie można zakończyć przekształcenie upubliczniając konstruktor, aby było możliwe bezpośrednie tworzenie instancji tej klasy, bez pośrednictwa metody-fabryki.


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