Abstract Factory
PHP 🔴 SeniorDé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.