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(); // Чыгаруу: "Гав!"