Sobes.tech
Junior

Объектке багытталган программалоо парадигмалары жана принциптери жөнүндө айтыңыз.

sobes.tech AI

AIден жооп

Объектке негизделген программалоо парадигмалары:

  1. Инкапсуляция: Маалыматтарды жана ыкмаларды класс ичинде жашыруу, алардын кирүүсүн интерфейс аркылуу камсыз кылуу.
  2. Мурас: Бардык класстардан (ата-эне класстардан) жаңы класстарды (төмөнкү класстарды) түзүү, алардын касиеттерин жана ыкмаларын мурас алуу.
  3. Полиморфизм: Ар кандай класстардын объекттерин жалпы интерфейс аркылуу колдонуу жана ар бир класс үчүн өзгөчө жүрүм-турумду ишке ашыруу.

OOP принциптери (SOLID):

  1. Бир жоопкерчилик принциби (SRP): Ар бир класс бир конкреттүү функция үчүн жооптуу болушу керек.
  2. Ачык/жабык принциби (OCP): Класстар кеңейтүүгө ачык, бирок өзгөртүүгө жабык болушу керек.
  3. Лисковдун алмаштыруу принциби (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(); // Чыгаруу: "Гав!"