Factory Method
Architecture 🟢 JuniorDéfinition
Définit une interface pour créer un objet, mais laisse les sous-classes décider quelle classe instancier. Permet de déléguer la logique de création.
Analogie
Un restaurant avec une carte : tu choisis 'pizza' et la cuisine décidé quelle recette exacte préparer.
Exemple de code
class NotifFactory {
create(type) {
if (type === 'email') return new EmailNotif();
if (type === 'sms') return new SmsNotif();
throw new Error('Unknown type');
}
}
Cas d'usage
Quand la logique de création varie selon le contexte et qu'on veut éviter les if/else dans le code client.
Anti-pattern
Mettre toute la logique de création dans le constructeur au lieu de la déléguer.