Junior
Խոսեք օբյեկտային ուղղված ծրագրավորման պարադիգմների և սկզբունքների մասին։
sobes.tech AI
Պատասխան AI-ից
Օբյեկտ-կենտրոնացված ծրագրավորման պարադիգմներ:
- Կապսուլյացիա: Տվյալների և մեթոդների թաքցնում դասի ներսում, մուտք գործելու հնարավորություն տրամադրում ինտերֆեյսի միջոցով:
- Ներառում: Նոր դասեր (մշակված դասեր) ստեղծել առկա դասերից (հարազատ դասեր), ժառանգելով նրանց հատկությունները և մեթոդները:
- Պոլիմորֆիզմ: Հնարավորություն ունենալ տարբեր դասերի օբյեկտներ օգտագործել ընդհանուր ինտերֆեյսի միջոցով և իրականացնել յուրահատուկ վարքագիծ յուրաքանչյուր դասի համար:
OOP-ի սկզբունքներ (SOLID):
- Միայն պատասխանատվության սկզբունք (SRP): Յուրաքանչյուր դաս պետք է պատասխանատու լինի միայն մեկ գործառույթի համար:
- Բաց/փակ սկզբունք (OCP): Դասերը պետք է բաց լինեն ընդլայնման համար, բայց փակ՝ փոփոխության համար:
- Liskov փոխարինման սկզբունք (LSP): Հիմնային դասի օբյեկտները կարող են փոխարինվել ժառանգական դասի օբյեկտներով՝ առանց ծրագրի ճիշտ աշխատանքի խախտման:
- Ինտերֆեյսների բաժանման սկզբունք (ISP): Հաճախորդները չպետք է կախված լինեն այն ինտերֆեյսներից, որոնք չեն օգտագործում:
- Վերածնման սկզբունք (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(); // Տպում է "Հաու!"