Junior — Middle
Comment garantir qu'un module du système soit ouvert à l'extension, mais fermé à la modification?
sobes.tech IA
Réponse de l'IA
Pour qu'un module du système soit ouvert à l'extension mais fermé à la modification, on applique le principe d'ouverture/fermeture (Principe Ouvert/Fermé) de SOLID.
Cela est réalisé par :
- Utilisation d'abstractions (interfaces, classes abstraites), qui définissent le comportement du module.
- Mise en œuvre de nouvelles fonctionnalités via l'héritage ou la composition, sans modifier le code source du module.
- Application de patrons de conception, comme la Stratégie (Strategy) ou le Décorateur (Decorator), qui permettent d'ajouter dynamiquement un comportement.
Exemple en Dart (Flutter) :
abstract class PaymentProcessor {
void pay(double amount);
}
class CreditCardProcessor implements PaymentProcessor {
@override
void pay(double amount) {
print('Paiement de $amount par carte de crédit');
}
}
class PayPalProcessor implements PaymentProcessor {
@override
void pay(double amount) {
print('Paiement de $amount via PayPal');
}
}
// Le module utilise l'abstraction PaymentProcessor et peut être étendu avec de nouvelles méthodes de paiement sans modifier le code existant.