Junior
Pastāstiet par objektorientētās programmēšanas paradigmu un principiem.
sobes.tech AI
Atbilde no AI
OOP paradigmas:
- Inkapsculācija: Datu un metožu slēpšana klasē, piekļuves nodrošināšana caur saskarni.
- Mantošana: Jaunu klasu (bērnu) izveide esošo (vecāku) pamata, mantojot to īpašības un metodes.
- Polimorfisms: Iespēja izmantot dažādu klasu objektus caur kopēju saskarni, īstenojot katrai klasei raksturīgu uzvedību.
OOP principi (SOLID):
- Single Responsibility Principle (SRP): Katrai klasei jābūt atbildīgai par vienu konkrētu funkciju.
- Open/Closed Principle (OCP): Klases jābūt atvērtām paplašināšanai, bet slēgtām izmaiņām.
- Liskov Substitution Principle (LSP): Bāzes klases objekti var tikt aizstāti ar apakšklases objektiem, nesabojājot programmas darbību.
- Interface Segregation Principle (ISP): Klienti nedrīkst būt atkarīgi no saskarnēm, kuras viņi neizmanto.
- 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!"