Sobes.tech
Junior

Pastāstiet par objektorientētās programmēšanas paradigmu un principiem.

sobes.tech AI

Atbilde no AI

OOP paradigmas:

  1. Inkapsculācija: Datu un metožu slēpšana klasē, piekļuves nodrošināšana caur saskarni.
  2. Mantošana: Jaunu klasu (bērnu) izveide esošo (vecāku) pamata, mantojot to īpašības un metodes.
  3. Polimorfisms: Iespēja izmantot dažādu klasu objektus caur kopēju saskarni, īstenojot katrai klasei raksturīgu uzvedību.

OOP principi (SOLID):

  1. Single Responsibility Principle (SRP): Katrai klasei jābūt atbildīgai par vienu konkrētu funkciju.
  2. Open/Closed Principle (OCP): Klases jābūt atvērtām paplašināšanai, bet slēgtām izmaiņām.
  3. Liskov Substitution Principle (LSP): Bāzes klases objekti var tikt aizstāti ar apakšklases objektiem, nesabojājot programmas darbību.
  4. Interface Segregation Principle (ISP): Klienti nedrīkst būt atkarīgi no saskarnēm, kuras viņi neizmanto.
  5. Dependency Inversion Principle (DIP): Augstākā līmeņa moduļiem nevajadzētu būt atkarīgiem no zemākā līmeņa moduļiem. Abi jābalstās uz abstrakcijām. Abstrakcijas nedrīkst būt atkarīgas no detaļām. Detaļas jābalstās uz abstrakcijām.

Inkapsculācijas un mantošanas piemērs:

// Bāzes klase
public class Animal
{
    public string Name { get; set; }

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

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

// Apakšklase
public class Dog : Animal
{
    public Dog(string name) : base(name)
    {
    }

    // Pārrakstīt bāzes klases metodi
    public override void MakeSound()
    {
        Console.WriteLine("Woof!");
    }
}

Polimorfisma piemērs:

Animal myAnimal = new Dog("Buddy");
myAnimal.MakeSound(); // Izvadīs "Woof!"