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:

Abstract Factory

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