Zpo-10-wyk-Slajd7: 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: struktura==
==Przykład(2)==


[[Image:zpo-10-wyk-Slajd7.PNG|Abstract Factory: struktura]]
[[Image:zpo-10-wyk-Slajd7.PNG|Przykład(2)]]




Klient, analogicznie do rozwiązania stosowanego w Factory Method, odwołuje się do klasy AbstractFactory służącej do tworzenia grupy różnych produktów. Każdy produkt jest tworzony przez osobną metodę, która sama stosuje wzorzec Factory Method. AbstractFactory jest klasą abstrakcyjną, tzn. nie definiuje, w jaki sposób mają być tworzone odpowiednie produkty; deklaruje jedynie obecność odpowiedzialnych za to metod. Tworzeniem konkretnych produktów zajmują się jej implementacje, w których każda z metod tworzy odpowiedni obiekt należący do typu danego produktu.
Następnie klasa Czytelnik jest wyposażona w pamięć podręczną, implementowaną jako mapa odwzorowująca napisy (nazwiska czytelników) w obiekty klasy Czytelnik. Metoda-fabryka obecnie próbuje najpierw znaleźć żądany obiekt w pamięci podręcznej, a jedynie w przypadku niepowodzenia utworzyć go za pomocą wywołania konstruktora\ i następnie umieścić obiekt w pamięci podręcznej, zwracając wynik klientowi (w tym przypadku będzie to klasa Wypożyczenie).


Klient postrzega instancje produktów wyłącznie poprzez zdefiniowane interfejsy AbstractProdyct. Poniżej warstwy abstrakcji znajdują się implementacje tych interfejsów (np. ProductA1 i ProductA2) które tworzone właśnie przez obiekty ConcreteFactory.
W ten sposób ograniczono liczbę tworzonych instancji klasy Czytelnik do jednej na każdy obiekt rzeczywisty oraz uniemożliwiono bezpośredni dostęp do konstruktora tej klasy, tworząc w efekcie obiekt-referencję. Obiekty klasy Czytelnik traktowane jako referencje, a nie wartości.
 
Klient, wybierając odpowiednią fabrykę ConcreteFactory, decyduje jednocześnie o wyborze całej rodziny Produktów. To pozwala zmieniać całe rodziny produktów w prosty sposób – posługując się inną implementacją fabryki.




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

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

Przykład(2)

Przykład(2)


Następnie klasa Czytelnik jest wyposażona w pamięć podręczną, implementowaną jako mapa odwzorowująca napisy (nazwiska czytelników) w obiekty klasy Czytelnik. Metoda-fabryka obecnie próbuje najpierw znaleźć żądany obiekt w pamięci podręcznej, a jedynie w przypadku niepowodzenia utworzyć go za pomocą wywołania konstruktora\ i następnie umieścić obiekt w pamięci podręcznej, zwracając wynik klientowi (w tym przypadku będzie to klasa Wypożyczenie).

W ten sposób ograniczono liczbę tworzonych instancji klasy Czytelnik do jednej na każdy obiekt rzeczywisty oraz uniemożliwiono bezpośredni dostęp do konstruktora tej klasy, tworząc w efekcie obiekt-referencję. Obiekty klasy Czytelnik są traktowane jako referencje, a nie wartości.


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