Junior
Obyektga yo'naltirilgan dasturlash paradigmalari va prinsiplari haqida gapiring.
sobes.tech AI
AIdan javob
Obyektga yo'naltirilgan dasturlash paradigmalari:
- Inkapsulatsiya: Ma'lumotlar va metodlarni sinf ichida yashirish, ularga kirishni interfeys orqali ta'minlash.
- Merosi: Mavjud sinflardan (asosiy sinflardan) yangi sinflar (voris sinflar) yaratish, ularning xususiyatlari va metodlarini meros olish.
- Polimorfizm: Turli sinflardan obyektlarni umumiy interfeys orqali ishlatish va har bir sinfga xos xatti-harakatlarni bajarish.
OOP prinsiplari (SOLID):
- Yagona mas'uliyat prinsipi (SRP): Har bir sinf faqat bitta vazifani bajarishi kerak.
- Ochiq/yopiq prinsipi (OCP): Sinflar kengaytirishga ochiq, lekin o'zgartirishga yopiq bo'lishi kerak.
- Liskov o'rnini bosish prinsipi (LSP): Asosiy sinf obyektlari, voris sinf obyektlari bilan almashtirilganda, dastur to'g'ri ishlashini ta'minlashi kerak.
- Interfeyslarni ajratish prinsipi (ISP): Mijozlar foydalanmaydigan interfeyslar bilan bog'liq bo'lmasligi kerak.
- 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