Junior
Porozprávajte o paradigmatách a princípoch objektovo orientovaného programovania.
sobes.tech AI
Odpoveď od AI
Paradigmy objektovo orientovaného programovania:
- Zapuzdrovanie: Skrytie dát a metód vnútri triedy, poskytovanie prístupu cez rozhranie.
- Dedičstvo: Vytváranie nových tried (podtried) na základe existujúcich (nadtried), zdedením ich vlastností a metód.
- 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):
- Princíp jednotnej zodpovednosti (SRP): Každá trieda má mať jednu konkrétnu funkciu.
- Princíp otvorenosti/zatvorenosti (OCP): Triedy by mali byť otvorené na rozšírenie, ale zatvorené na zmenu.
- Princíp Liskovovej substitúcie (LSP): Objekt základnej triedy môže byť nahradený objektom odvodeného typu bez narušenia správnosti programu.
- Princíp segregácie rozhraní (ISP): Klienti by nemali závisieť od rozhraní, ktoré nevyužívajú.
- 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!"