Sobes.tech
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.