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ı:
- İnkapsulasiya: Məlumatların və metodların sinif daxilində gizlədilməsi, onlara interfeys vasitəsilə girişin təmin olunması.
- 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.
- 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):
- Yeganə məsuliyyət prinsipi (SRP): Hər sinif yalnız bir funksiyadan məsul olmalıdır.
- Açıq/qapalı prinsipi (OCP): Siniflər genişləndirməyə açıq, lakin dəyişikliklərə qapalı olmalıdır.
- 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.
- Interfeyslərin ayrılması prinsipi (ISP): Müştərilər istifadə etmədikləri interfeyslərə bağlı olmamalıdır.
- 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