Junior
Rääkige objektorienteeritud programmeerimise paradigmadest ja põhimõtetest.
sobes.tech AI
Vastus AI-lt
OOP paradigmas:
- Inkaptsulatsioon: Andmete ja meetodite varjamine klassi sees, neile juurdepääsu võimaldamine liidese kaudu.
- Pärimine: Uute klasside (järglaste) loomine olemasolevate (vanemate) põhjal, pärides nende omadused ja meetodid.
- Polümorfism: Võimalus kasutada erinevate klasside objekte ühise liidese kaudu, teostades iga klassi spetsiifilist käitumist.
OOP põhimõtted (SOLID):
- Single Responsibility Principle (SRP): Iga klass vastutab ühe konkreetse funktsiooni eest.
- Open/Closed Principle (OCP): Klassid peaksid olema avatud laiendamiseks, kuid suletud muutmiseks.
- Liskov Substitution Principle (LSP): Põhiklassi objektid võivad asendada päriliku klassi objekte, ilma et see rikuks programmi korrektsust.
- Interface Segregation Principle (ISP): Kliendid ei tohiks sõltuda liidestest, mida nad ei kasuta.
- 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!"