Kunt u het principe van openheid/sluitbaarheid uitleggen in de context van objectgeoriënteerd programmeren?
sobes.tech AI
Antwoord van AI
Het Open/Closed-principe in objectgeoriënteerd programmeren betekent dat software-entiteiten (klassen, modules, functies) open moeten staan voor uitbreiding, maar gesloten voor wijziging.
Dit betekent dat het gedrag van het systeem kan worden uitgebreid zonder de bestaande code te wijzigen, wat het risico op fouten vermindert en het onderhoud vereenvoudigt.
In C# wordt dit vaak bereikt door gebruik te maken van abstracties, interfaces en erfelijkheid. Bijvoorbeeld, door nieuwe functionaliteit toe te voegen, maken we een nieuwe klasse die een interface implementeert, in plaats van de bestaande te wijzigen.
Voorbeeld:
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;
}
// Nu kunnen we nieuwe vormen toevoegen zonder de bestaande code te wijzigen
Op deze manier wordt het systeem uitgebreid door nieuwe klassen toe te voegen, in plaats van oude te wijzigen.