Zpo-6-wyk-Slajd7
Abstract Factory: struktura
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.
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 są tworzone właśnie przez obiekty ConcreteFactory.
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.