Sobes.tech
Junior

Vertel over de paradigma's en principes van objectgeoriënteerd programmeren.

sobes.tech AI

Antwoord van AI

Objectgeoriënteerde programmeerparadigma's:

  1. Incapsulatie: Het verbergen van gegevens en methoden binnen een klasse, met toegang via een interface.
  2. Erfelijkheid: Het creëren van nieuwe klassen (subklassen) gebaseerd op bestaande klassen (superklassen), waarbij eigenschappen en methoden worden geërfd.
  3. Polymorfisme: Het vermogen om objecten van verschillende klassen via een gemeenschappelijke interface te gebruiken en specifiek gedrag uit te voeren voor elke klasse.

Principes van OOP (SOLID):

  1. Single Responsibility Principle (SRP): Elke klasse moet één enkele verantwoordelijkheid hebben.
  2. Open/Closed Principle (OCP): Klassen moeten openstaan voor uitbreiding, maar gesloten zijn voor wijziging.
  3. Liskov Substitution Principle (LSP): Objecten van een basisklasse kunnen worden vervangen door objecten van een afgeleide klasse zonder de correctheid van het programma te schaden.
  4. Interface Segregation Principle (ISP): Klanten mogen niet afhankelijk zijn van interfaces die ze niet gebruiken.
  5. Dependency Inversion Principle (DIP): Hoog-niveau modules mogen niet afhankelijk zijn van laag-niveau modules; beide moeten afhankelijk zijn van abstracties. Abstracties mogen niet afhankelijk zijn van details; details moeten afhankelijk zijn van abstracties.

Voorbeeld van encapsulatie en erfelijkheid:

// Basisklasse
public class Animal
{
    public string Name { get; set; }

    public Animal(string name)
    {
        Name = name;
    }

    public virtual void MakeSound()
    {
        Console.WriteLine("Een algemeen geluid");
    }
}

// Afgeleide klasse
public class Dog : Animal
{
    public Dog(string name) : base(name)
    {
    }

    // Override van de basisklasse-methode
    public override void MakeSound()
    {
        Console.WriteLine("Woef!");
    }
}

Voorbeeld van polymorfisme:

Animal myAnimal = new Dog("Buddy");
myAnimal.MakeSound(); // Drukt "Woef!" af