Junior — Middle
Объектке багытталган программалоо контекстинде ачыктык/жабыктык принцибин түшүндүрө аласызбы?
sobes.tech AI
AIден жооп
Объектке багытталган программалоодо Ачык/Жабык Принципи, программалык түзүмдөр (сыныптар, модулдар, функциялар) кеңейүүгө ачык, бирок өзгөртүүгө жабык болушу керек дегенди билдирет.
Бул системанын жүрүм-турумун өзгөртүүсүз кеңейтүүгө болот, бул каталардын коркунучун азайтат жана тейлөө иштерин жеңилдетет.
C#да бул көбүнчө абстракциялар, интерфейстер жана мурас аркылуу жетишилет. Мисалы, жаңы функцияны кошуу үчүн, биз жаңы класс түзөбүз, ал интерфейсти ишке ашырат, өзгөртүүнүн ордуна.
Мисал:
public interface IShape
{
double Area();
}
public class Circle : IShape
{
public double Radius { get; set; }
public double Area() => Math.PI * Radius * Radius;
}
public class Square : IShape
{
public double Side { get; set; }
public double Area() => Side * Side;
}
// Эми жаңы фигураларды кошуу мүмкүн, бар кодду өзгөртпөстөн
Мындайча айтканда, системаны жаңы класстарды кошуу аркылуу кеңейтүүгө болот, эскилерди өзгөртпөстөн.