Abstract Factory

PHP 🔴 Senior

Definition

Pattern qui fournit une interface pour creer des familles d'objets lies sans specifier leurs classes concretes. Etend 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 creer des familles d'objets coherents (theme UI, drivers de base de donnees).

Anti-pattern

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