Sobes.tech
Junior

Rääkige objektorienteeritud programmeerimise paradigmadest ja põhimõtetest.

sobes.tech AI

Vastus AI-lt

OOP paradigmas:

  1. Inkaptsulatsioon: Andmete ja meetodite varjamine klassi sees, neile juurdepääsu võimaldamine liidese kaudu.
  2. Pärimine: Uute klasside (järglaste) loomine olemasolevate (vanemate) põhjal, pärides nende omadused ja meetodid.
  3. Polümorfism: Võimalus kasutada erinevate klasside objekte ühise liidese kaudu, teostades iga klassi spetsiifilist käitumist.

OOP põhimõtted (SOLID):

  1. Single Responsibility Principle (SRP): Iga klass vastutab ühe konkreetse funktsiooni eest.
  2. Open/Closed Principle (OCP): Klassid peaksid olema avatud laiendamiseks, kuid suletud muutmiseks.
  3. Liskov Substitution Principle (LSP): Põhiklassi objektid võivad asendada päriliku klassi objekte, ilma et see rikuks programmi korrektsust.
  4. Interface Segregation Principle (ISP): Kliendid ei tohiks sõltuda liidestest, mida nad ei kasuta.
  5. Dependency Inversion Principle (DIP): Kõrgema taseme moodulid ei tohiks sõltuda madalama taseme moodulitest. Mõlemad peaksid sõltuma abstraktsioonidest. Abstraktsioonid ei tohiks sõltuda üksikdetailidest. Detailid peaksid sõltuma abstraktsioonidest.

Inkaptsulatsiooni ja pärimise näide:

// Põhiklass
public class Animal
{
    public string Name { get; set; }

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

    public virtual void MakeSound()
    {
        Console.WriteLine("Some generic sound");
    }
}

// Pärilik klass
public class Dog : Animal
{
    public Dog(string name) : base(name)
    {
    }

    // Põhiklassi meetodi ülekirjutamine
    public override void MakeSound()
    {
        Console.WriteLine("Woof!");
    }
}

Polümorfismi näide:

Animal myAnimal = new Dog("Buddy");
myAnimal.MakeSound(); // Kuvab "Woof!"