Abstract Factory

PHP 🔴 Senior

Définition

Pattern qui fournit une interface pour créer des familles d'objets lies sans spécifier leurs classes concrètes. Étend le Factory Method a plusieurs produits.

Analogie

Comme un concessionnaire de marque : Peugeot produit berlines ET SUV, Toyota aussi, mais dans leur propre style.

Exemple de code

interface UIFactory {
  public function createButton(): Button;
  public function createInput(): Input;
}
class DarkThemeFactory implements UIFactory {
  public function createButton(): Button { return new DarkButton(); }
  public function createInput(): Input { return new DarkInput(); }
}

Cas d'usage

Quand on doit créer des familles d'objets cohérents (theme UI, drivers de base de données).

Anti-pattern

Introduire une Abstract Factory quand une simple Factory Method suffit.
#advanced#pattern

← → au clavier pour passer d'une fiche à l'autre