Abstraktní továrna (Abstract Factory)
Účel:
Poskytuje rozhraní pro vytváření řad příbuzných nebo závislých objektů, aniž by se musely specifikovat konkrétní třídy.
Jiné názvy:
Kit (souprava)
Použití:
Vzor Abstraktní továrna lze použít v následujících případech:
- systém má být nezávislý na tom, jak se jeho produkty vytvářejí, skládají a představují
- systém má být konfigurován pomocí jedné z více produktových řad
- řada příbuzných produktových objektů je navržena pro společné použití a toto omezení musíme dodržovat
- chceme poskytnout třídní knihovnu produktů, která má odhalit pouze jejich rozhraní a nikoliv jejich implementace
Struktura:
Součásti:
- AbstractFactory
- deklaruje rozhraní pro operace, které vytvářejí abstraktní produktové objekty
- ConcreteFactory
- implementuje operace k vytváření konkrétních produktových objektů
- AbstractProduct
- deklaruje rozhraní pro typ produktového objektu
- ConcreteProduct
- definuje produktový objekt, který se má vytvořit odpovídajíci konkrétní továrnou
- implementuje rozhraní AbstractProduct
- Client
- používá pouze rozhraní deklarovaná třídami AbstractFactory a AbstractProduct