Sobes.tech
Junior

Obyektga yo'naltirilgan dasturlash paradigmalari va prinsiplari haqida gapiring.

sobes.tech AI

AIdan javob

Obyektga yo'naltirilgan dasturlash paradigmalari:

  1. Inkapsulatsiya: Ma'lumotlar va metodlarni sinf ichida yashirish, ularga kirishni interfeys orqali ta'minlash.
  2. Merosi: Mavjud sinflardan (asosiy sinflardan) yangi sinflar (voris sinflar) yaratish, ularning xususiyatlari va metodlarini meros olish.
  3. Polimorfizm: Turli sinflardan obyektlarni umumiy interfeys orqali ishlatish va har bir sinfga xos xatti-harakatlarni bajarish.

OOP prinsiplari (SOLID):

  1. Yagona mas'uliyat prinsipi (SRP): Har bir sinf faqat bitta vazifani bajarishi kerak.
  2. Ochiq/yopiq prinsipi (OCP): Sinflar kengaytirishga ochiq, lekin o'zgartirishga yopiq bo'lishi kerak.
  3. Liskov o'rnini bosish prinsipi (LSP): Asosiy sinf obyektlari, voris sinf obyektlari bilan almashtirilganda, dastur to'g'ri ishlashini ta'minlashi kerak.
  4. Interfeyslarni ajratish prinsipi (ISP): Mijozlar foydalanmaydigan interfeyslar bilan bog'liq bo'lmasligi kerak.
  5. Qarorlar in'ektsiyasi prinsipi (DIP): Yuqori darajadagi modullar past darajadagi modullarga bog'liq bo'lmasligi kerak; ikkalasi ham abstraktsiyalarga bog'liq bo'lishi kerak. Abstraktsiyalar, tafsilotlardan mustaqil bo'lishi kerak.

Inkapsulatsiya va meros misoli:

// Asosiy sinf
public class Animal
{
    public string Name { get; set; }

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

    public virtual void MakeSound()
    {
        Console.WriteLine("Umumiy tovush");
    }
}

// Voris sinf
public class Dog : Animal
{
    public Dog(string name) : base(name)
    {
    }

    // Asosiy sinf metodini qayta yozish
    public override void MakeSound()
    {
        Console.WriteLine("Vov!");
    }
}

Polimorfizm misoli:

Animal myAnimal = new Dog("Buddy");
myAnimal.MakeSound(); // "Vov!" ni chiqaradi