Junior — Middle
Pouvez-vous expliquer le principe d'ouverture/fermeture dans le contexte de la programmation orientée objet?
sobes.tech IA
Réponse de l'IA
Le principe d'ouverture/fermeture en programmation orientée objet signifie que les entités logicielles (classes, modules, fonctions) doivent être ouvertes à l'extension mais fermées à la modification.
Cela signifie que le comportement du système peut être étendu sans modifier le code existant, ce qui réduit le risque d'erreurs et facilite la maintenance.
En C#, cela est souvent réalisé par l'utilisation d'abstractions, d'interfaces et d'héritage. Par exemple, en ajoutant une nouvelle fonctionnalité, nous créons une nouvelle classe qui implémente une interface, au lieu de modifier l'existante.
Exemple:
public interface IShape
{
double Area();
}
public class Circle : IShape
{
public double Radius { get; set; }
public double Area() => Math.PI * Radius * Radius;
}
public class Square : IShape
{
public double Side { get; set; }
public double Area() => Side * Side;
}
// Maintenant, on peut ajouter de nouvelles figures sans changer le code existant
Ainsi, le système s'étend par l'ajout de nouvelles classes plutôt que par la modification des anciennes.