Sobes.tech
Junior

Дар бораи парадигмаҳо ва принсипҳои барномасозии объектӣ гап занед.

sobes.tech AI

Ҷавоб аз AI

Парадигмҳои барномасозии объектӣ:

  1. Инкапсулятсия: пинҳон кардани маълумот ва усулҳо дар дохили синф, фароҳам овардани дастрасӣ тавассути интерфейс.
  2. Мирас: эҷоди синфҳои нав (подсинфҳо) бар асоси синфҳои мавҷуда (синфҳои асосӣ), ки хусусиятҳо ва усулҳоро ба онҳо мерос мегиранд.
  3. Полиформизм: қобилияти истифодаи объектҳои синфҳои гуногун тавассути интерфейми умумӣ ва иҷрои рафторҳои махсус барои ҳар як синф.

Принсипҳои OOP (SOLID):

  1. Принсипи масъулияти ягона (SRP): ҳар як синф бояд барои як вазифаи мушаххас масъул бошад.
  2. Принсипи кушод/банд (OCP): синфҳо бояд барои васеъшавӣ кушод бошанд, аммо барои тағирот баста бошанд.
  3. Принсипи ивазкунии Лисков (LSP): объектҳои синфи асосӣ метавонанд бо объектҳои синфи таҳияшуда иваз шаванд бе вайрон кардани дурустии барнома.
  4. Принсипи ҷудо кардани интерфейсҳо (ISP): мизоҷон набояд аз интерфейсҳое, ки онҳо истифода намебаранд, вобаста бошанд.
  5. Принсипи инверсияи вобастагиҳо (DIP): модулҳои сатҳи боло набояд аз модулҳои сатҳи поён вобаста бошанд; ҳарду бояд вобаста ба абстраксияҳо бошанд. Абстраксияҳо набояд аз тафсилотҳо вобаста бошанд, тафсилотҳо бояд аз абстраксияҳо вобаста бошанд.

Масалан, инкапсулятсия ва мирас:

// Синфи асосӣ
public class Animal
{
    public string Name { get; set; }

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

    public virtual void MakeSound()
    {
        Console.WriteLine("Ҳаво умумӣ");
    }
}

// Синфи таҳияшуда
public class Dog : Animal
{
    public Dog(string name) : base(name)
    {
    }

    // Баргардонидани усули синфи асосӣ
    public override void MakeSound()
    {
        Console.WriteLine("Гав!");
    }
}

Масалан, полиформизм:

Animal myAnimal = new Dog("Buddy");
myAnimal.MakeSound(); // Натиҷа: "Гав!"