Java — Factory Pattern (Création d’objets)
Le Factory Pattern est un design pattern très utilisé pour créer des objets de manière flexible et propre.
1. Idée simple
Le Factory Pattern consiste à :
déléguer la création d’objets à une méthode ou une classe
➡️ au lieu d’utiliser directement new
2. Problème sans factory
Payment p;
if (type.equals("CARD")) {
p = new CardPayment();
} else if (type.equals("PAYPAL")) {
p = new PaypalPayment();
}
Problèmes :
- code dupliqué
- difficile à maintenir
- couplage fort
3. Solution avec Factory
class PaymentFactory {
public static Payment create(String type) {
if (type.equals("CARD")) {
return new CardPayment();
} else if (type.equals("PAYPAL")) {
return new PaypalPayment();
}
throw new IllegalArgumentException("Unknown type");
}
}
Utilisation
Payment p = PaymentFactory.create("CARD");
Plus propre et centralisé
4. Structure
- interface ou classe abstraite (
Payment) - classes concrètes (
CardPayment,PaypalPayment) - factory (
PaymentFactory)
5. Avantages
- réduit le couplage
- centralise la création
- facilite les modifications
- améliore la lisibilité
6. Pièges
- trop de logique dans la factory
- utilisation abusive
- ne pas confondre avec DI (Dependency Injection)
7. Variante : Factory Method
abstract class Creator {
abstract Product create();
}
chaque sous-classe décide quoi créer
8. Quand utiliser ?
- plusieurs types d’objets
- logique de création complexe
- besoin de flexibilité
9. Questions classiques
Q1
Pourquoi utiliser une factory ? centraliser la création
Q2
Avantage principal ? réduction du couplage
Q3
remplace new ?
souvent oui
10. À retenir
- Factory = création d’objet centralisée
- évite le
newpartout - améliore la maintenabilité
- très utilisé en backend
🧾 En résumé
- encapsule la création d’objets
- réduit les dépendances
- rend le code plus flexible
C’est un pattern simple mais très puissant pour structurer une application.