Sobes.tech
Junior

Խոսեք օբյեկտային ուղղված ծրագրավորման պարադիգմների և սկզբունքների մասին։

sobes.tech AI

Պատասխան AI-ից

Օբյեկտ-կենտրոնացված ծրագրավորման պարադիգմներ:

  1. Կապսուլյացիա: Տվյալների և մեթոդների թաքցնում դասի ներսում, մուտք գործելու հնարավորություն տրամադրում ինտերֆեյսի միջոցով:
  2. Ներառում: Նոր դասեր (մշակված դասեր) ստեղծել առկա դասերից (հարազատ դասեր), ժառանգելով նրանց հատկությունները և մեթոդները:
  3. Պոլիմորֆիզմ: Հնարավորություն ունենալ տարբեր դասերի օբյեկտներ օգտագործել ընդհանուր ինտերֆեյսի միջոցով և իրականացնել յուրահատուկ վարքագիծ յուրաքանչյուր դասի համար:

OOP-ի սկզբունքներ (SOLID):

  1. Միայն պատասխանատվության սկզբունք (SRP): Յուրաքանչյուր դաս պետք է պատասխանատու լինի միայն մեկ գործառույթի համար:
  2. Բաց/փակ սկզբունք (OCP): Դասերը պետք է բաց լինեն ընդլայնման համար, բայց փակ՝ փոփոխության համար:
  3. Liskov փոխարինման սկզբունք (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(); // Տպում է "Հաու!"