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