Sobes.tech
Junior

Obyekt yönümlü proqramlaşdırmanın paradigmaları və prinsipləri haqqında danışın.

sobes.tech Süni İntellekt

AI-dan cavab

Obyekt yönümlü proqramlaşdırma paradigmaları:

  1. İnkapsulasiya: Məlumatların və metodların sinif daxilində gizlədilməsi, onlara interfeys vasitəsilə girişin təmin olunması.
  2. Miras: Mövcud siniflərdən (üst siniflər) yeni siniflər (alt siniflər) yaradaraq onların xüsusiyyətləri və metodlarını miras almaq.
  3. Polimorfizm: Müxtəlif siniflərin obyektlərini ümumi interfeys vasitəsilə istifadə etmək və hər sinfə xas davranışları həyata keçirmək.

OOP prinsipləri (SOLID):

  1. Yeganə məsuliyyət prinsipi (SRP): Hər sinif yalnız bir funksiyadan məsul olmalıdır.
  2. Açıq/qapalı prinsipi (OCP): Siniflər genişləndirməyə açıq, lakin dəyişikliklərə qapalı olmalıdır.
  3. Liskov yerinə yetirmə prinsipi (LSP): Əsas sinifin obyektləri, törəmə sinif obyektləri ilə əvəz olunduqda, proqramın düzgün işləməsini təmin etməlidir.
  4. Interfeyslərin ayrılması prinsipi (ISP): Müştərilər istifadə etmədikləri interfeyslərə bağlı olmamalıdır.
  5. Asılılıqların tərs çevrilməsi prinsipi (DIP): Yüksək səviyyəli modullar aşağı səviyyəli modullara bağlı olmamalıdır; hər ikisi abstraksiyalara bağlı olmalıdır. Abstraksiyalar detallardan asılı olmamalıdır, detallər abstraksiyalara bağlı olmalıdır.

İnkapsulasiya və miras nümunəsi:

// Əsas sinif
public class Animal
{
    public string Name { get; set; }

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

    public virtual void MakeSound()
    {
        Console.WriteLine("Ümumi səs");
    }
}

// Törəmə sinif
public class Dog : Animal
{
    public Dog(string name) : base(name)
    {
    }

    // Əsas sinif metodunun üst-üstə yazılması
    public override void MakeSound()
    {
        Console.WriteLine("Hav!" );
    }
}

Polimorfizm nümunəsi:

Animal myAnimal = new Dog("Buddy");
myAnimal.MakeSound(); // "Hav!" çap edir