Sobes.tech
Junior

Porozprávajte o paradigmatách a princípoch objektovo orientovaného programovania.

sobes.tech AI

Odpoveď od AI

Paradigmy objektovo orientovaného programovania:

  1. Zapuzdrovanie: Skrytie dát a metód vnútri triedy, poskytovanie prístupu cez rozhranie.
  2. Dedičstvo: Vytváranie nových tried (podtried) na základe existujúcich (nadtried), zdedením ich vlastností a metód.
  3. Polymorfizmus: Schopnosť používať objekty rôznych tried cez spoločné rozhranie a vykonávať špecifické správanie pre každú triedu.

Princípy OOP (SOLID):

  1. Princíp jednotnej zodpovednosti (SRP): Každá trieda má mať jednu konkrétnu funkciu.
  2. Princíp otvorenosti/zatvorenosti (OCP): Triedy by mali byť otvorené na rozšírenie, ale zatvorené na zmenu.
  3. Princíp Liskovovej substitúcie (LSP): Objekt základnej triedy môže byť nahradený objektom odvodeného typu bez narušenia správnosti programu.
  4. Princíp segregácie rozhraní (ISP): Klienti by nemali závisieť od rozhraní, ktoré nevyužívajú.
  5. Princíp inverzie závislostí (DIP): Vyššie vrstvy by nemali závisieť od nižších vrstiev; obidve by mali závisieť od abstrakcií. Abstrakcie by nemali závisieť od detailov, ale detaily od abstrakcií.

Príklad enkapsulácie a dedičnosti:

// Základná trieda
public class Animal
{
    public string Name { get; set; }

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

    public virtual void MakeSound()
    {
        Console.WriteLine("Všeobecný zvuk");
    }
}

// Odvodená trieda
public class Dog : Animal
{
    public Dog(string name) : base(name)
    {
    }

    // Prepisovanie metódy základnej triedy
    public override void MakeSound()
    {
        Console.WriteLine("Hau!");
    }
}

Príklad polymorfizmu:

Animal myAnimal = new Dog("Buddy");
myAnimal.MakeSound(); // Vytlačí: "Hau!"