Junior
Дар бораи парадигмаҳо ва принсипҳои барномасозии объектӣ гап занед.
sobes.tech AI
Ҷавоб аз AI
Парадигмҳои барномасозии объектӣ:
- Инкапсулятсия: пинҳон кардани маълумот ва усулҳо дар дохили синф, фароҳам овардани дастрасӣ тавассути интерфейс.
- Мирас: эҷоди синфҳои нав (подсинфҳо) бар асоси синфҳои мавҷуда (синфҳои асосӣ), ки хусусиятҳо ва усулҳоро ба онҳо мерос мегиранд.
- Полиформизм: қобилияти истифодаи объектҳои синфҳои гуногун тавассути интерфейми умумӣ ва иҷрои рафторҳои махсус барои ҳар як синф.
Принсипҳои OOP (SOLID):
- Принсипи масъулияти ягона (SRP): ҳар як синф бояд барои як вазифаи мушаххас масъул бошад.
- Принсипи кушод/банд (OCP): синфҳо бояд барои васеъшавӣ кушод бошанд, аммо барои тағирот баста бошанд.
- Принсипи ивазкунии Лисков (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(); // Натиҷа: "Гав!"